การรวมกันเป็นโมฆะแปลได้คร่าวๆว่า 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
ฉันเห็นว่านี่เกือบจะตรงข้ามกับการรวมกันเป็นโมฆะซึ่งผสมกับ terse, อินไลน์เช็คโมฆะ แต่ฉัน [ เกือบ ] แน่ใจว่าไม่มีตัวดำเนินการดังกล่าวใน C #
มีภาษาอื่นที่มีตัวดำเนินการดังกล่าวหรือไม่? ถ้าเป็นเช่นนั้นเรียกว่าอะไร?
(ฉันรู้ว่าฉันสามารถเขียนวิธีการได้ใน C # ฉันใช้return NullOrValue.of(x, () => x.y);
แต่ถ้าคุณมีอะไรที่ดีกว่าฉันก็อยากเห็นเช่นกัน)