2011-12-15 6 views

답변

2

C#에는 이러한 작업을 수행하는 데 필요한 것이 없습니다.

맞아 IEnumerator의 Current 속성은 getter로만 정의됩니다.

그런 것을 지원하기 위해 새로운 클래스 또는 인터페이스를 작성해야합니다.

interface IOutputable<T> { 
    IOutputer<T> GetOutputer(); 
    } 

interface IOutputer<T> { 

    T Current { set; } 

    bool MoveNext(); 
    void Reset(); 
    } 
2

AFAIK 출력 반복기는 일련의 개체를 만드는 방법입니다. C#에서 그렇게 할 수있는 방법이 무수히 있습니다. 예를 들어 Stack을 사용합니다. 대신 C++ 스타일의 증가를하는/당신이 푸시를 할 거라고 작업을 지정합니다 : 당신이 그것을 위해 매우 구체적인 응용 프로그램이 없다면, C#에서 출력 반복자를 모방하려고 노력에는 이익이 아마 없다

var sequence = new Stack<int>(); 
sequence.Push(1); 
sequence.Push(2); 

.

+0

허용되는 대답이어야합니다. MerickOWA의 접근 방식이 효과가있을 수 있지만, C# 방식으로 작업하는 것이 아닙니다. – dan04

0

당신이하려는 일에 따라 yield return도 찾고있는 것을 할 수 있습니다.

관련 문제