По какой-то причине M1()
вызывает ошибку компилятора, а M2()
, что делает то же самое, не вызывает ошибки. Любая идея почему?
Использование false ==
должно быть таким же, как с использованием оператора not, !
.
Использование неназначенной локальной переменной '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