这两种写法有什么区别吗?
int? foo = GetValueOrDefault();
var obj = new
{
//some code...,
bar = foo.HasValue ? foo > 0 : (bool?)null
}
VS
int?foo = GetValueOrDefault();
注意:这是字面翻译,可能需要根据具体情况进行调整。
var obj = new
{
//some code...,
bar = foo.HasValue ? foo > 0 : default(bool?)
}
(bool?) null
和default(bool?)
从C#2开始有效,但是(bool?) default
需要C# 7.1。当然,在实践中不太可能出现问题。 - Jeroen Mostert