Похоже, что нет возможности иметь неназначенные локальные переменные в вашем коде или проверять их, поскольку компилятор выдает ошибку Использование неназначенной локальной переменной
.
Почему компилятор не использует default (T)
для этих переменных во время компиляции?
Даже если это сложнее сделать для типов значений, ссылочные типы могут быть легко инициализированы значением null
в данном случае, верно?
Вот какой-то тестовый код:
public void Test ( )
{
int x;
string s;
if ( x == 5 )
Console.WriteLine ( 5 );
if ( s != null )
Console.WriteLine ( "s" );
}
, который возвращает:
Use of unassigned local variable 'x'
Use of unassigned local variable 's'
ОБНОВЛЕНИЕ:
Для людей, которые заявляют, что это запрещено по уважительной причине, почему это разрешено на уровень класса?
public class C
{
public int X;
public string S;
public void Print ( )
{
Console.WriteLine ( X );
Console.WriteLine ( S );
}
}
Этот код компилируется отлично.
Почему хорошо иметь на уровне класса, но не на уровне метода?