Почему я не могу использовать оператор распространения значения null в лямбда-выражениях?C#

Место общения программистов C#
Anonymous
Почему я не могу использовать оператор распространения значения null в лямбда-выражениях?

Сообщение Anonymous »

Я часто использую в своем коде оператор распространения нуля, потому что он делает код более читаемым, особенно в длинных запросах, мне не нужно проверять на ноль каждый используемый класс.

Следующий код выдает ошибку компиляции, из-за которой мы не можем использовать оператор распространения нуля в лямбда-выражении.

Код: Выделить всё

var cnt = humans.AsQueryable().Count(a => a.House?[0].Price == 5000);
Ошибка:


Ошибка CS8072. Лямбда-выражение дерева выражений может не содержать оператор распространения нуля.


C# может легко преобразовать приведенный выше код в код следующего кода, если действительно не может сделать ничего другого!

Код: Выделить всё

var cnt = humans.AsQueryable().Count(a => a.House != null && a.House[0].Price == 5000);
Мне любопытно, почему C# ничего не делает, а просто выдает ошибку компилятора?

Подробнее здесь: https://stackoverflow.com/questions/288 ... xpressions

Вернуться в «C#»