当前位置:  开发笔记 > 编程语言 > 正文

在C#(.NET)即时变量中是string.Length吗?

如何解决《在C#(.NET)即时变量中是string.Length吗?》经验,为你挑选了2个好方法。

我想知道string.Length在C#中是否是一个即时变量.通过即时变量我的意思是,当我创建字符串时:

string A = "";

A = "Som Boh";

现在计算长度吗?

要么

它是在我试图获得A.Length之后计算的吗?



1> Noldorin..:

首先,请注意.NET中的字符串与存储在非托管语言中的字符串(例如C++)非常不同......在CLR中,字符串的长度(以字符和字节为单位)实际上存储在内存中,以便CLR知道包含字符串的内存块(字符数组)有多大.这是在创建字符串时完成的,并且在System.String类型不可变的情况下不会更改.

在C++中,这是相当不同的,因为通过读取直到第一个空字符来发现字符串的长度.由于内存使用在CLR中的工作方式,您基本上可以认为获取Length字符串的属性就像检索int变量一样.如果你正在考虑的话,这里的性能成本绝对是最小的.

如果你想在.NET中阅读更多关于字符串的内容,请尝试使用Jon Skeet关于该主题的文章 - 它似乎包含了你可能想知道的有关.NET中字符串的所有细节.



2> driis..:

不计算字符串的长度,在构造时已知.由于String是不可变的,因此以后不需要计算它.

.NET字符串存储为包含字符数的字段和相应的一系列unicode字符.

推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有