string s1;
string s2 = null;
if (s1 == null) // compile error
if (s2 == null) // ok
Я действительно не понимаю, почему требуется явное назначение. В чем разница между нулевой переменной и неназначенной переменной? Я всегда предполагал, что неназначенные переменные были просто назначены как null во время выполнения/компилятора. Если они не равны нулю, то каковы они?