Heim >Backend-Entwicklung >C++ >Warum können anonyme Methoden in C# nicht direkt „var' zugewiesen werden?
Warum anonyme Methoden nicht var zugewiesen werden können
Im bereitgestellten Code schlägt die Kompilierung der Zuweisung der anonymen Methode zur Variable var fehl aufgrund der Mehrdeutigkeit beim Ableiten des Delegatentyps.
Anonyme Methoden können Delegatentypen zugewiesen werden, z Func
Außerdem, selbst wenn der Compiler darauf schließen könnte Da es sich hierbei um einen Delegate-Typ handelt, kann dies zu Inkonsistenzen führen. Unter der Annahme, dass die Variablenzuweisung beispielsweise erfolgreich kompiliert wurde, würde der folgende Code keinen Sinn mehr ergeben:
var comparer = delegate(string arg1, string arg2, string arg3, string arg4, string arg5) { return false; };
Dies liegt daran, dass Func<> Lässt in .NET 3.5 nur bis zu vier Argumente zu, daher würde die Typinferenz nicht mit dem tatsächlichen Verhalten übereinstimmen.
Um diese Mehrdeutigkeit aufzulösen, ist es notwendig, den Delegattyp explizit anzugeben, wenn anonyme Methoden zu Variablen zugewiesen werden. Dadurch wird Klarheit und Konsistenz im Code gewährleistet.
Das obige ist der detaillierte Inhalt vonWarum können anonyme Methoden in C# nicht direkt „var' zugewiesen werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!