C#中的可变字符串和不可变字符串有什么区别?

C#中的可变字符串和不可变字符串有什么区别?



萧十郎
浏览 604回答 3
3回答

浮云间

可变和不可变是英文单词,分别表示“可以更改”和“不能更改”。在IT环境中,单词的含义相同;即可变字符串可以更改,并且不变的字符串不能更改。在C#/ .NET中,这些词的含义与其他编程语言/环境中的含义相同,但是(显然)类型的名称可能会有所不同,其他细节也可能有所不同。作为记录:String 是标准的C#/ .Net不可变字符串类型StringBuilder 是标准的C#/ .Net可变字符串类型要在以C#表示的字符串上“实现更改” String,实际上需要创建一个新String对象。原稿String未更改...因为它不可更改。在大多数情况下,最好使用String它们,因为这是更容易理解它们的原因。例如,您无需考虑其他线程可能“更改我的字符串”的可能性。但是,当您需要使用一系列操作来构造或修改字符串时,使用可能会更有效StringBuilder。最后,对于那些断言a StringBuilder不是字符串,因为它不是不可变的人们,Microsoft 文档StringBuilder因此描述了:“表示可变的字符串。不能继承此类。”

慕森卡

String 是一成不变的即字符串不能更改。当您更改字符串(例如通过添加到字符串)时,实际上是在创建新字符串。但StringBuilder不是一成不变的(而是可变的)因此,如果您必须多次更改字符串(例如多个串联),请使用StringBuilder。
打开App,查看更多内容
随时随地看视频慕课网APP