컴파일러 경고(수준 1) CS1957
'name' 멤버가 'method'를 재정의합니다. 런타임에 여러 재정의 후보가 있습니다. 호출되는 메서드는 구현별로 다릅니다.
ref
또는 out
인지에 의해서만 달라지는 메서드 매개 변수는 런타임에 구분할 수 없습니다.
- 메서드 중 하나에 다른 이름이나 다른 개수의 매개 변수를 제공합니다.
다음 코드에서는 CS1957을 생성합니다.
// cs1957.cs
class Base<T, S>
{
public virtual string Test(out T x) // CS1957
{
x = default(T);
return "Base.Test";
}
public virtual void Test(ref S x) { }
}
class Derived : Base<int, int>
{
public override string Test(out int x)
{
x = 0;
return "Derived.Test";
}
static int Main()
{
int x;
if (new Derived().Test(out x) == "Derived.Test")
return 0;
return 1;
}
}
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET 피드백
.NET은(는) 오픈 소스 프로젝트입니다. 다음 링크를 선택하여 피드백을 제공해 주세요.