Compilerwarnung (Stufe 1) CS1957

Aktualisiert: November 2007

Fehlermeldung

Der Member 'Name' überschreibt 'Methode'. Zur Laufzeit sind mehrere Kandidaten zum Überschreiben verfügbar. Die aufgerufene Methode ist implementierungsabhängig.
Member 'name' overrides 'method'. There are multiple override candidates at run-time. It is implementation dependent which method will be called.

Methodenparameter, die sich nur durch ref oder out unterscheiden, können zur Laufzeit nicht unterschieden werden.

So vermeiden Sie diese Warnung

  • Versehen Sie eine der Methoden mit einem anderen Namen oder einer anderen Anzahl von Parametern.

Beispiel

Durch den folgenden Code wird der Fehler CS1957 generiert:

// 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;
    }
}