Compilerfehler CS0121
Der Aufruf ist für die folgenden Methoden oder Eigenschaften nicht eindeutig: „Methode1“ und „Methode2“
Aufgrund der impliziten Konvertierung war der Compiler nicht in der Lage, eine Form einer überladenen Methode aufzurufen. Sie haben verschiedene Möglichkeiten zur Behebung dieses Fehlers:
- Geben Sie die Methodenparameter so an, dass keine implizite Konvertierung stattfindet.
- Entfernen Sie alle Überladungen für die Methode.
- Führen Sie vor dem Methodenaufruf eine Umwandlung in den richtigen Typ durch.
- Verwenden Sie benannte Argumente.
Beispiel 1
Die folgenden Beispiele führen zum Compilerfehler CS0121:
public class Program
{
static void f(int i, double d)
{
}
static void f(double d, int i)
{
}
public static void Main()
{
f(1, 1); // CS0121
// Try the following code instead:
// f(1, 1.0);
// or
// f(1.0, 1);
// or
// f(1, (double)1); // Cast and specify which method to call.
// or
// f(i: 1, 1);
// or
// f(d: 1, 1);
// f(i: 1, d: 1); // This still gives CS0121
}
}
Beispiel 2
class Program2
{
static int ol_invoked = 0;
delegate int D1(int x);
delegate T D1<T>(T x);
delegate T D1<T, U>(U u);
static void F(D1 d1) { ol_invoked = 1; }
static void F<T>(D1<T> d1t) { ol_invoked = 2; }
static void F<T, U>(D1<T, U> d1t) { ol_invoked = 3; }
static int Test001()
{
F(delegate(int x) { return 1; }); // CS0121
if (ol_invoked == 1)
return 0;
else
return 1;
}
static int Main()
{
return Test001();
}
}
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.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für