C#中的字符串有多长?

时间:2014-05-12 21:53:25

标签: c# string richtextbox

我是C#WPF架构的新手。我的项目中有BinaryFile class,其中包含以下属性:fileNamefileLengtherrorCountdataContent。此类绑定到Richtextbox。我需要在此类中包含一个属性,该属性保存Richtextbox中的数据。使用字符串是个好主意吗?我的二进制文件非常庞大,平均为10MB。

4 个答案:

答案 0 :(得分:3)

来自the documentation(由我加粗的粗体文字,不在源文件中)

  

字符串是使用的Unicode字符的顺序集合   表示文字。 String对象是一个顺序集合   System.Char表示字符串的对象。 String的值   object是顺序集合的内容,该值是   不可变的(也就是说,它是只读的)。有关的更多信息   字符串的不变性,请参见Immutability和StringBuilder   本主题后面的类部分。 String对象的最大大小   在内存中是2 GB,或大约10亿个字符。

答案 1 :(得分:1)

10MB没问题。 .NET字符串的内置限制为2,147,483,647。但是,鉴于.NET中的字符编码为unicode,每个字符需要2个字节,因此将其减少一半。无论哪种方式,你的10MB都离最大值很远。

答案 2 :(得分:1)

字符串长度可以是2,147,483,647个字符。

请注意,使用许多字符串可能会导致OutOfMemoryException。大于85000字节的对象是大对象,.NET处理它们与其他垃圾收集的东西不同。您可能会受到内存碎片的影响。

答案 3 :(得分:0)

字符串不能超过2,147,483,648个AKA 2 ^ 31个字符,因为String.Length是一个32位整数。

他们也受到可用内存的限制。