2010-06-14 6 views
1

나는 Ienumerable object.what에 대해 아무 것도 모른다 .net에서 Ienumarble 인터페이스의 역할은 무엇입니까? 그것이 내장되어 있는지 말해주십시오. .net의 모든 클래스가 자동으로 Ienumarable 인터페이스를 구현합니까? 왜 ienumerable 인터페이스를 구현해야 하는가? 그것이 포함하고있는 방법은 무엇입니까 & 그들은 어떤 역할을합니다. 자세히 설명해주십시오..net에서 Ienumerable 개체의 기본 역할은 무엇입니까?

+3

당신이 문서를 읽어 봤어? MSDN? Google? 도움이되지 않았다면, 이해하지 못하는 것에 관해 구체적으로 설명하십시오. – shahkalpesh

답변

1

간단히 말해 IEnumerable은 열거자를 노출하므로 비 일반형 컬렉션을 통해 간단한 반복을 지원할 수 있습니다.

그것은 기본적으로 모음을 통해 즉를 foreach는 루프를 할 수 있습니다 :

foreach (Control control in this.Controls) 
{ 
    // Do something 
} 

당신이 당신의 자신의 수업 시간에 IEnumable를 사용하여 구현할 필요가있는 유일한 방법은 IEnumerator을 반환 GetEnumerator()입니다.

IEnumerator를 다음과 같은 방법을 구현하는 클래스해야합니다 반환 : here에서 촬영

void Reset(); 
object Current(); 
bool MoveNext(); 

IEnumerator를 클래스의 기본 예 :

private class ClassEnumerator : IEnumerator 
{ 
    private ClassList _classList; 
    private int _index; 

    public ClassEnumerator(ClassList classList) 
    { 
     _classList = classList; 
     _index = -1; 
    } 

    #region IEnumerator Members 

    public void Reset() 
    { 
     _index = -1; 
    } 

    public object Current 
    { 
     get 
     { 
      return _classList._students[_index]; 
     } 
    } 

    public bool MoveNext() 
    { 
     _index++; 
     if (_index >= _classList._students.Count) 
      return false; 
     else 
      return true; 
    } 

    #endregion 
} 
+0

** 일반이 아닌 ** 컬렉션. –

+0

@Lukas - woops. – GenericTypeTea

+0

@ Lukas Šalkauskas, MSDN 문서는 간단히 "컬렉션"이 아닌 "제네릭 컬렉션"이 아닌 것으로 정교하게 작성하십시오. – Fenton

관련 문제