Compilerwarnung (Stufe 1) CS1957
Member „name“ setzt „method“ außer Kraft. Es gibt mehrere Kandidaten, die zur Laufzeit außer Kraft gesetzt werden können. Welche Methode aufgerufen wird, ist implementierungsabhängig festzulegen, .
Methodenparameter, die sich nur darin unterscheiden, ob sie ref
oder out
sind, können zur Laufzeit nicht unterschieden werden.
So vermeiden Sie diese Warnung
- Geben Sie einer der Methoden einen anderen Namen oder eine andere Anzahl von Parametern.
Beispiel
Durch den folgenden Code wird der Fehler CS1957 ausgelöst:
// 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;
}
}
Zusammenarbeit auf GitHub
Die Quelle für diesen Inhalt finden Sie auf GitHub, wo Sie auch Issues und Pull Requests erstellen und überprüfen können. Weitere Informationen finden Sie in unserem Leitfaden für Mitwirkende.