On Friday, 28 February 2014 at 11:21:47 UTC, Marc Schütz wrote:

I sometimes come across situations like this:

writeln_or_whatever(person ? person.name : "");

(This is a case of "means something".)

Using `person?.name` is a bit shorter and DRYer. But it would be more useful if I could specify the default value it returns. With an explicit `maybe` this would be possible:

person.maybe("<n/a>").name;


With C#, you can't use 'person' to imply 'person !is null'.
So instead you have
var name = person != null ? person.name : null;
Which is less nice than
var name = person?.name

So this feature is a bit more useful there than here. It also ties in well with the ?? operator, for something like:
var name = person?.name ?? "Unknown";

Reply via email to