컴파일러 오류 CS1940
소스 형식 'type'에 쿼리 패턴이 여러 번 구현되어 있습니다. 'method'에 대한 호출이 모호합니다.
이 오류는 쿼리 메서드의 여러 구현이 정의되었는데 컴파일러에서 쿼리에 사용하기에 가장 적합한 구현을 구분할 수 없는 경우 발생합니다. 다음 예제에서는 두 버전 모두 하나의 Select
를 입력 매개 변수로 사용하고 int
를 반환 값으로 사용하기 때문에 int
의 두 버전에 동일한 서명이 있습니다.
- 각 메서드에 대해 하나의 구현만 제공합니다.
다음 코드에서는 CS1940을 생성합니다.
C#
// cs1940.cs
using System; //must include explicitly for types defined in 3.5
class Test
{
public delegate int Dele(int x);
int num = 0;
public int Select(Func<int, int> d)
{
return d(this.num);
}
public int Select(Dele d) // CS1940
{
return d(this.num) + 1;
}
public static void Main()
{
var q = from x in new Test()
select x;
}
}
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET 피드백
.NET은(는) 오픈 소스 프로젝트입니다. 다음 링크를 선택하여 피드백을 제공해 주세요.