gpt4 book ai didi

c# - 奇怪的 C# 语法

转载 作者:行者123 更新时间:2023-11-30 13:18:46 25 4
gpt4 key购买 nike

我刚发现这个语法:

date1 = date2?.ToString("yyyy-MM-dd") ?? date3;

当然,第一次看到这样的语法,没看懂。经过调试,我明白了它相当于:

if(date2 != null)
date1 = date2.ToString("yyyy-MM-dd");
else
date1 = date3;

我的问题是:为什么引入这种语法,因为它根本不清晰,而且只节省了 3 行文本?

编辑:我的问题是关于 ?运算符,不是 ??

最佳答案

该语句不仅节省了 3 行,它更具可读性并且还节省了一个代码块,这对于允许更复杂的 LINQ 查询很重要。

你觉得这两个怎么样?

var x = collection.Select(x => new SomeClass(x?.Property ?? "default"));

反对:

var x = collection.Select(x => 
{
string value = null;
if (x != null)
{
value = x.Property;
}

if (value == null)
{
value = "default";
}

return new SomeClass(value);
}
);

第一个更具表现力和功能。如果您拥有不止一处特性怎么办?

关于c# - 奇怪的 C# 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44883461/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com