нулевое объединение примерно означает 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);, но если у вас есть что-нибудь получше, я тоже хотел бы это увидеть.)