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.
- [리스트는 상술 한 하드 코딩된다. 루프가 반복되는 동안 외부에서 목록이 변경된 경우 어떻게됩니까?
- [list]가 읽기 전용 속성 인 경우 어떻게됩니까?
int List{get{return(new int [] {1,2,3});}}
? 이것은 루프를 뒤엎을 것입니까? 그렇지 않은 경우 각 반복에서 새 인스턴스를 만듭니다.
또 다른 요점은 배열의 경우 'Length' 속성은 다음과 같습니다. 불변. 배열에서'Length'를 호출하고 특정 값을 얻는다면, 그 배열에 대한 앞으로의 모든 호출은 동일한 값을 반환하도록 보장됩니다. 물론 인스턴스 변수가 배열 타입이고 다른 인스턴스를 가리 키도록 인스턴스 변수를 변경하면 배열의 길이가 이전 배열과 다를 수 있습니다. – supercat