C#中的C ++ CString等效
MFC的CString
的C#
等价物是什么?
可能是System.String
。 但是为了提供更多有用的信息:
-
System.String
实例是不可变的。 连接/子串/等实际上创建了新的字符串对象,因此使用字符串实例作为缓冲区来构建输出是一个非常糟糕的主意,以防你打算这样做。 将System.String
视为const CString
。 -
System.Text.StringBuilder
用于构建和操作字符串内容。 它有一个.ToString()
方法,您可以调用它将其内容转换为正确的字符串。 - 您可以使用
char[]
作为一种字符串构建器替代方法,如果您确切知道生成的字符串将要生长多长时间,但即使如此,您也可以使用new StringBuilder(length)
来指定默认的初始容量。 然后,您可以使用相关的追加方法,而无需保留索引变量。 (StringBuilder
为你做到了。)
正如比利在这个问题的另一个答案中提到的,C#有一个关键字string
,它本质上是System.String
类型的快捷方式。 两者都是完全等效的,但如果使用大写forms,大多数编码人员都会LART你。
您可以尝试使用String ,看看它是否有帮助。
你知道, CString
并不是OO设计正确的光辉典范。 MS不断添加成员function,直到它像瑞士军刀一样……但仍然缺少重要的function。
使用不可变的’System.String`和许多支持类可以更好地完成使用CString做的任何事情。