C#中字符串变量可存储的最大字符数是多少?
C#字符串变量的最大存储字符数
在C#中,字符串的最大可存储字符数由两方面因素约束:
- 类型定义层面:
string的Length属性为int类型,int.MaxValue的取值是2147483647,这是语法上的理论上限。 - 实际内存层面:CLR规定单个托管对象的最大分配容量为2GB(32位、64位进程均适用)。由于C#字符串采用UTF-16编码,每个
char占用2字节,再加上字符串对象自身的固定开销(如对象头、长度标识等,约28字节),实际能成功创建的最大字符串字符数约为1073741822(计算方式:(2^31 - 28) / 2)。
如果尝试创建超出内存承载能力的字符串,程序会抛出OutOfMemoryException异常。
内容的提问来源于stack exchange,提问作者Parsa Mehdipour
相关产品推荐
相关产品推荐

