三目运算符中如何将 null/Nullable 赋值给 DateTime?

22

我有一个像这样的语句

DateTime ? dt = (string1 == string2) ? null; (DateTime)(txtbox.Text);

我无法编译代码,原因是:null 不能赋值给 DateTime

因此,我必须声明一个可为空的变量 Nullable<DateTime> nullable 并将 null 替换为 nullable

我不想使用 if 语句,并希望在一行内完成操作。

另外,我可以在这里使用运算符 ?? 吗?

2个回答

63
DateTime? dt = (string1 == string2) ? (DateTime?)null
                                    : DateTime.Parse(txtbox.Text);

0

您可以这样做:

DateTime ? dt = (string1 == string2) ? new Nullable <DateTime>(): (DateTime)(txtbox.Text);

你不能直接将 string 转换为 DateTime。你需要使用 Parse 方法来完成转换。http://msdn.microsoft.com/zh-cn/library/1k1skd40.aspx - LukeH

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接