컴파일러 오류 CS0202
foreach의 반환 형식 'type'('type.GetEnumerator()')에는 적절한 공용 MoveNext 메서드 및 공용 Current 속성이 있어야 합니다.
foreach 문을 사용할 수 있도록 하는 데 사용되는 GetEnumerator 함수는 포인터 또는 배열을 반환할 수 없습니다. 열거자 역할을 할 수 있는 클래스의 인스턴스를 반환해야 합니다. 열거자 역할을 하기 위한 요구 사항에는 공용 Current 속성 및 공용 MoveNext 메서드가 포함됩니다.
참고
C# 2.0에서는 컴파일러가 Current 및 MoveNext를 자동으로 생성합니다. 자세한 내용은 제네릭 인터페이스의 코드 예를 참조하세요.
다음 샘플에서는 CS0202를 생성합니다.
C#
// CS0202.cs
public class C1
{
public int Current
{
get
{
return 0;
}
}
public bool MoveNext ()
{
return false;
}
public static implicit operator C1 (int c1)
{
return 0;
}
}
public class C2
{
public int Current
{
get
{
return 0;
}
}
public bool MoveNext ()
{
return false;
}
public C1[] GetEnumerator ()
// try the following line instead
// public C1 GetEnumerator ()
{
return null;
}
}
public class MainClass
{
public static void Main ()
{
C2 c2 = new C2();
foreach (C1 x in c2) // CS0202
{
System.Console.WriteLine(x.Current);
}
}
}
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET 피드백
.NET은(는) 오픈 소스 프로젝트입니다. 다음 링크를 선택하여 피드백을 제공해 주세요.