C # 7 Error del compilador: coincidencia de patrones
Por alguna razón,M1()
provoca un error del compilador, mientrasM2()
, que hace lo mismo, no causa ningún error. ¿Alguna idea de por qué?
Utilizandofalse ==
debería ser lo mismo que usar el operador no,!
.
Uso de la variable local no asignada 'i'
class Program {
static void Main(string[] args) {
int x = 8;
M1(x);
M2(x);
} // Main()
public static void M1(Object obj) {
if (false == (obj is int i)) // Causes ERROR on WriteLine
return;
System.Console.WriteLine(i); // Use of unassigned local variable 'i'
}
public static void M2(Object obj) {
if (!(obj is int i)) // OKAY
return;
System.Console.WriteLine(i);
}
} // class Program