首页 > 解决方案 > 如果在 for 循环条件中使用属性,将属性存储在局部变量中是否有意义?

问题描述

简单而小的想法,可能影响不大。如果你手动迭代一个数组,就像这个简单的例子:

        for (int i = 0; i < myArr.Length; i++)
        {
            Console.WriteLine(myArr[i]);
        }

在本地存储 myArr.Length 有意义吗?像这样:

        int myArrLen = myArr.Length
        for (int i = 0; i < myArrLen; i++)
        {
            Console.WriteLine(myArr[i]);
        }

与局部变量 myArrLen 相比,访问 myArr.Length 是否需要额外的工作量?它是否必须让这个内存访问 for 循环的每次迭代,还是会自动在本地存储 myArr.Length?如果数组有 100,000 或 1,000,000 个成员,您能注意到差异吗?

标签: c#performancefor-loopmemorymemory-management

解决方案


推荐阅读