Sea*_*ean 3 c# conditional-statements
我刚刚发现了这种语法:
date1 = date2?.ToString("yyyy-MM-dd") ?? date3;
Run Code Online (Sandbox Code Playgroud)
当然,这是我第一次看到这样的语法,我不理解它.经过调试,我明白它相当于:
if(date2 != null)
date1 = date2.ToString("yyyy-MM-dd");
else
date1 = date3;
Run Code Online (Sandbox Code Playgroud)
我的问题是:为什么引入这种语法,因为它根本不易读,它只是节省了3行文本?
编辑:我的问题是关于?操作员,不是??
Pat*_*man 11
该声明不仅节省了3行,它更具可读性并且还省去了代码块,这对于允许更复杂的LINQ查询非常重要.
你觉得这两个怎么样?
var x = collection.Select(x => new SomeClass(x?.Property ?? "default"));
Run Code Online (Sandbox Code Playgroud)
反对:
var x = collection.Select(x =>
{
string value = null;
if (x != null)
{
value = x.Property;
}
if (value == null)
{
value = "default";
}
return new SomeClass(value);
}
);
Run Code Online (Sandbox Code Playgroud)
第一个是更具表现力和更强大的.如果您有多个房产怎么办?
| 归档时间: |
|
| 查看次数: |
455 次 |
| 最近记录: |