нулевое объединение примерно переводится как return x, unless it is null, in which case return y
Мне часто нужно return null if x is null, otherwise return x.y
Я могу использовать return x == null ? null : x.y;
Неплохо, но то, что null
посередине меня всегда беспокоит - кажется лишним. Я бы предпочел что-то вроде return x :: x.y;
, где то, что следует за ::
, оценивается только в том случае, если то, что ему предшествует, не является null
.
Я вижу в этом почти противоположность слияния нулей, как бы смешанную с краткой встроенной нулевой проверкой, но я [почти] уверен, что нет такой оператор в C #.
Есть ли в других языках такой оператор? Если да, то как это называется?
(Я знаю, что могу написать для этого метод на C #; я использую return NullOrValue.of(x, () => x.y);
, но если у вас есть что-нибудь получше, я тоже хотел бы это увидеть.)
return x ? x.y : NULL
. Ура для преобразования типов указателей в логические! - person Phil Miller   schedule 28.05.2010x ?=> y
: вернуть null, если x равно null, в противном случае вернуть y - person Andy   schedule 19.02.2014return x == null ? null : Whatever(x);
: visualstudio.uservoice.com/forums/121579-visual-studio/return x == null ? null : x.Property;
: visualstudio.uservoice.com/forums/121579-visual-studio/ - person JohnLBevan   schedule 14.07.2014