C#中的字符串有多长?

C#中的字符串有多长?,c#,string,richtextbox,C#,String,Richtextbox,我对C和WPF体系结构非常陌生。我的项目中有一个BinaryFile类,它具有以下属性:文件名,文件长度,错误计数和数据内容。此类绑定到Richtextbox。我需要在此类中包含一个属性,该属性保存Richtextbox中的数据。使用字符串是个好主意吗?我的二进制文件非常大,平均为10MB。字符串不能超过2147483648个字符,即2^31个字符,因为String.Length是32位整数 它们还受到可用内存的限制。字符串不能超过2147483648个字符,即2^31个字符,因为String.

我对
C
WPF
体系结构非常陌生。我的项目中有一个
BinaryFile类
,它具有以下属性:
文件名
文件长度
错误计数
数据内容
。此类绑定到
Richtextbox
。我需要在此类中包含一个属性,该属性保存
Richtextbox
中的数据。使用字符串是个好主意吗?我的二进制文件非常大,平均为10MB。

字符串不能超过2147483648个字符,即2^31个字符,因为String.Length是32位整数


它们还受到可用内存的限制。

字符串不能超过2147483648个字符,即2^31个字符,因为String.Length是32位整数


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

10MB没有问题。.NET字符串的内置限制为2147483647。然而,鉴于.NET中的字符编码为unicode,每个字符需要2个字节,因此将其减半。不管怎样,您的10MB距离最大值还有很长的路要走。

10MB没有问题。.NET字符串的内置限制为2147483647。然而,鉴于.NET中的字符编码为unicode,每个字符需要2个字节,因此将其减半。无论如何,您的10MB距离最大值还有很长的路要走。

距离(粗体文本由我加粗,而不是在源代码中)

字符串是使用的Unicode字符的顺序集合 表示文本。字符串对象是 表示字符串的System.Char对象。字符串的值 对象是顺序集合的内容,该值为 不可变(即,它是只读的)。有关 字符串的不变性,请参见不变性和StringBuilder 本主题后面的课程部分字符串对象的最大大小 内存为2GB,约10亿个字符。

From(粗体文本由我加粗,不在源代码中)

字符串是使用的Unicode字符的顺序集合 表示文本。字符串对象是 表示字符串的System.Char对象。字符串的值 对象是顺序集合的内容,该值为 不可变(即,它是只读的)。有关 字符串的不变性,请参见不变性和StringBuilder 本主题后面的课程部分字符串对象的最大大小 内存为2GB,约10亿个字符。


字符串的长度可以是2147483647个字符


请注意,使用许多字符串可能会导致OutOfMemoryException。大于85000字节的对象是大型对象,.NET处理这些对象的方式与其他垃圾收集的对象不同。您可能会遇到内存碎片问题。

字符串的长度可能为2147483647个字符


请注意,使用许多字符串可能会导致OutOfMemoryException。大于85000字节的对象是大型对象,.NET处理这些对象的方式与其他垃圾收集的对象不同。您可能会遇到内存碎片问题。

String
用于二进制数据?这取决于字符串中的内容。就像一根绳子有多长一样!我认为字符串用于文本信息-BinaryFile包含一些绑定到富文本框的文本,而不是用于二进制数据的astring…是的,因为我必须将数据转换为不同的格式,如二进制、十六进制和其他格式。请注意,.NET字符串存储在UTF-16中,因此具有规则;并非每个二进制序列都是有效的.NET字符串。
string
用于二进制数据?这取决于字符串中的内容。就像一根绳子有多长一样!我认为字符串用于文本信息-BinaryFile包含一些绑定到富文本框的文本,而不是用于二进制数据的astring…是的,因为我必须将数据转换为不同的格式,如二进制、十六进制和其他格式。请注意,.NET字符串存储在UTF-16中,因此具有规则;并非每个二进制序列都是有效的.NET字符串。