Upozornění kompilátoru (úroveň 1) CS1957

Člen 'name' přepisuje 'method'. Za běhu existuje více kandidátů pro přepsání. Je to implementace závislá, která metoda bude volána.

Parametry metody, které se liší pouze podle toho, zda jsou ref nebo out nelze odlišit za běhu.

Chcete-li se vyhnout tomuto upozornění

  1. Dejte jedné z metod jiný název nebo jiný počet parametrů.

Příklad

Následující kód vygeneruje 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;  
    }  
}