Что такое эквивалент C#
для MFC CString
?C++ эквивалент CString в C#
ответ
Возможно, System.String
. Но в целях предоставления более полезной информации:
System.String
экземпляры неизменяемы. Concatenation/substring/etc фактически создают новые строковые объекты, поэтому использование экземпляра строки в качестве буфера для создания вывода - это действительно плохая идея, если вы собираетесь это сделать. Подумайте оSystem.String
как оconst CString
.System.Text.StringBuilder
Используется для создания и обработки строкового содержимого. Он имеет способ.ToString()
, который вы можете вызвать, чтобы превратить его содержимое в нужную строку.- Вы можете использовать
char[]
в качестве альтернативы альтернатора строковых построек, если вы точно знаете, как долго будет создана сгенерированная строка, но даже при этом вы можете использоватьnew StringBuilder(length)
, чтобы указать начальную емкость по умолчанию. Затем вы можете использовать соответствующие методы добавления, не ограничиваясь индексной переменной. (StringBuilder
делает это для вас.)
Как Билли упоминалось в другой ответ на этот вопрос, C# имеет ключевое слово string
, которое по сути ярлык для System.String
типа. Оба они полностью эквивалентны, хотя большинство кодеров будут LART, если вы используете форму в верхнем регистре.
Вы можете использовать String и посмотреть, не поможет ли это.
Обратите внимание, что это имеет дополнительную поддержку в языке в форме строчной строки. –
Знаете ли вы, что CString
не является ярким примером дизайна OO, выполненного правильно. MS продолжала добавлять к нему функции членов, пока не походила на швейцарский армейский нож ... пока все еще отсутствовала бессильная функция.
Все, что вы можете сделать с помощью CString, можно улучшить с помощью неизменяемого «System.String» и ряда классов поддержки.
'CString' - это класс MFC, который не является частью стандартного C++. Я соответствующим образом обновил этот вопрос. –