Использование Кастинг null не компилирует как вдохновение, а из комментария Эрика Липперта:
Это демонстрирует интересный случай. "uint x = (int) 0;" бы хотя int неявно конвертируется в uint.
Мы знаем, что это не работает, потому что object нельзя назначить string:
string x = (object)null;
Но это так, хотя интуитивно это не должно:
uint x = (int)0;
Почему делает компилятор разрешает этот случай, когда int неявно конвертируется в uint?