gpt4 book ai didi

c# - 可空类型问题 ? : Conditional Operator

转载 作者:IT王子 更新时间:2023-10-29 03:31:21 29 4
gpt4 key购买 nike

有人可以解释为什么这在 C#.NET 2.0 中有效吗:

    Nullable<DateTime> foo;
if (true)
foo = null;
else
foo = new DateTime(0);

...但这不是:

    Nullable<DateTime> foo;
foo = true ? null : new DateTime(0);

后一种形式给我一个编译错误“无法确定条件表达式的类型,因为‘ ’和‘System.DateTime’之间没有隐式转换。”

并不是说我不能使用前者,而是第二种风格与我的其余代码更加一致。

最佳答案

编译器告诉你它不知道如何转换 null进入DateTime .

解决方法很简单:

DateTime? foo;
foo = true ? (DateTime?)null : new DateTime(0);

请注意 Nullable<DateTime>可以写成DateTime?这将为您节省大量的打字时间。

关于c# - 可空类型问题 ? : Conditional Operator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/295833/

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