영어로 읽기

다음을 통해 공유


컴파일러 경고(수준 1) CS1957

'name' 멤버가 'method'를 재정의합니다. 런타임에 여러 재정의 후보가 있습니다. 호출되는 메서드는 구현별로 다릅니다.

ref 또는 out 인지에 의해서만 달라지는 메서드 매개 변수는 런타임에 구분할 수 없습니다.

이 경고를 방지하려면

  1. 메서드 중 하나에 다른 이름이나 다른 개수의 매개 변수를 제공합니다.

예시

다음 코드에서는 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;  
    }  
}