3
我一直困惑的这一个。考虑以下循环:.NET环路的完整101
int [] list = new int [] { 1, 2, 3 };
for (int i=0; i < list.Length; i++) { }
foreach (int i in list) { }
while (list.GetEnumerator().MoveNext()) { } // Yes, yes you wouldn't call GetEnumerator with the while. Actually never tried that.
- [列表]以上是硬编码的。如果在循环迭代过程中列表发生了外部更改,会发生什么情况?
- 如果什么[名单]是一个只读属性,例如
int List{get{return(new int [] {1,2,3});}}
?这会扰乱循环。如果不是,它会在每次迭代中创建一个新实例吗?
的另一点是一个数组,该'Length'属性不可改变的。如果一个调用一个阵列上'Length'并得到一定的价值,将来的所有调用'Length'该阵列是保证返回相同的值。当然,如果一个人有一个数组类型的一个实例变量,并有新的变化该实例变量指向另一个阵列,该阵列的长度可以是从较早的一个不同。 – supercat 2012-02-10 20:56:56