¿Por qué no se puede asignar un método anónimo a var?
Tengo el siguiente código:
Func<string, bool> comparer = delegate(string value) {
return value != "0";
};
Sin embargo, lo siguiente no se compila:
var comparer = delegate(string value) {
return value != "0";
};
¿Por qué el compilador no puede entender que es unFunc<string, bool>
? Toma un parámetro de cadena y devuelve un valor booleano. En cambio, me da el error:
No se puede asignar un método anónimo a una variable local tipada implícitamente.
Tengo una suposición y eso essi la versión var compilada, carecería de coherencia si tuviera lo siguiente:
var comparer = delegate(string arg1, string arg2, string arg3, string arg4, string arg5) {
return false;
};
Lo anterior no tendría sentido ya que Func <> permite solo hasta 4 argumentos (en .NET 3.5, que es lo que estoy usando). Quizás alguien podría aclarar el problema. Gracias.