C#中的C ++ CString等效

MFC的CStringC#等价物是什么?

可能是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做的任何事情。