gpt4 book ai didi

c# - 当我们在 C# 中访问字符串的 ' Length ' 属性时会发生什么?

转载 作者:太空狗 更新时间:2023-10-29 22:11:54 26 4
gpt4 key购买 nike

示例代码如下:

string hi = "HelloWorld";
int length = hi.Length;
Console.WriteLine(length);
Console.WriteLine(length);
...

string hi = "HelloWorld";
int length = hi.Length;
Console.WriteLine(hi.Length);
Console.WriteLine(hi.Length);
...

如果字符串的 Length 属性将被多次访问,第一个片段代码是否比第二个片段代码更好?为什么?

当我们以hi.Length的方式访问字符串的长度时,CLR会统计hi中的字符个数并返回,或者只返回一个10是因为 Length 属性在 hi 初始化时被赋值为 10 还是其他原因?

Java 怎么样?

最佳答案

Length 是数组的一个属性(字符串在内部是一个字符数组),这意味着它在内存中总是可用的(数组总是固定长度,所以 Length 属性不会改变)。在这两种情况下,您应该始终只使用 hi.Length 而不是声明另一个变量。现在您只需将长度保存在内存中两次(一次在 int 的堆栈上,一次在属性的堆上)。

编辑:正如下面的评论者所指出的,此方法针对 ICollection 进行了优化,以使用该属性而不是迭代。 如果您要使用 linq 方法 .Count(),这将导致您的程序遍历整个数组以计算元素数。

关于c# - 当我们在 C# 中访问字符串的 ' Length ' 属性时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34943182/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com