当返回一个可能为空的对象时,我通常不应该使用(它的正确名称是什么?!)非常惊讶的运算符:?? 像这样。
return hazaa ?? new Hazaa();
当我返回对象的属性(如果它存在)和一些默认值时,就会出现问题。并不是要对父对象进行空值检查。今天我很喜欢。
return hazaa != null
? hazaa.Property
: String.Empty;
我认为这是一种不太理想的语法,我希望它更紧凑(但仍然很容易理解,因为该属性被适当地实现)像这样。
return (hazaa ?? new Hazaa()).Property;
但是,我不喜欢括号,我正在寻找一种省略它们的语法,仍然很紧凑。C#中有这样的东西吗?我正在寻找这样的东西。
return hazaa ?.Property :String.Empty;
而且,在这个想法上旋转,类似这样的事情。
return hazaa ?.Property :.BackUpProperty;
我可以创建自己的属性层来给我这样的行为,但这只是隐藏了问题。:)