Maison >développement back-end >C++ >Pourquoi les méthodes anonymes ne peuvent-elles pas être affectées directement à « var » en C# ?
Pourquoi les méthodes anonymes ne peuvent pas être attribuées à var
Dans le code fourni, l'affectation de la méthode anonyme à la variable var ne parvient pas à compiler en raison de l'ambiguïté dans la déduction du type de délégué.
Des méthodes anonymes peuvent être attribuées aux types de délégué, tels que Func
De plus, même si le compilateur pouvait déduire le type de délégué, cela pourrait conduire à des incohérences. Par exemple, en supposant que l'affectation var soit compilée avec succès, le code suivant n'aurait plus de sens :
var comparer = delegate(string arg1, string arg2, string arg3, string arg4, string arg5) { return false; };
C'est parce que Func<> n'autorise que jusqu'à quatre arguments dans .NET 3.5, donc l'inférence de type ne correspondrait pas au comportement réel.
Pour résoudre cette ambiguïté, il est nécessaire de spécifier explicitement le type de délégué lors de l'attribution de méthodes anonymes aux variables. Cela garantit la clarté et la cohérence du code.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!