Null в IEnumerable против IList

Почему IEnumerable = null может быть передан без ошибок, но IList=Null не будет компилироваться?

4 ответа

Это не правда. Вы можете установить переменную типа IEnumerable или IList в нулевую ссылку, и она будет скомпилирована.

В вашем коде есть что-то еще, что неправильно.

Это отлично работает:

IList<int> Foo() {
    return null;
}

Трудно точно понять, что вы имеете в виду. Вы говорите, что нулевая ссылка для IEnumerable может быть "передана без ошибки". "Передача" - это вещь времени выполнения, но вы говорите, что с IList вы получаете ошибку компиляции? Это звучит смущенно. Вам нужно будет дать нам больше информации.

Ну, с вашим точным вопросом, это может быть потому, что C# чувствителен к регистру - null буквально, но Null нет. Трудно сказать, учитывая, что вы еще не опубликовали код, который мог бы на самом деле компилироваться.

Если проблема не в вашем реальном коде, опубликуйте свой реальный код, и мы посмотрим, что мы можем сделать.

Другие вопросы по тегам