在三元运算中将 null/Nullable 分配给 DateTime

Posted

技术标签:

【中文标题】在三元运算中将 null/Nullable 分配给 DateTime【英文标题】:Assigning null/Nullable to DateTime in Ternary Operation 【发布时间】:2011-09-07 02:18:43 【问题描述】:

我有这样的声明

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

我无法编译。原因是:null 不能分配给DateTime

所以,我必须声明一个Nullable<DateTime> nullable 变量并将null 替换为nullable

我不想使用if-statement,我想在一行中做到这一点。

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

【问题讨论】:

【参考方案1】:
DateTime? dt = (string1 == string2) ? (DateTime?)null
                                    : DateTime.Parse(txtbox.Text);

【讨论】:

【参考方案2】:

你可以这样做:

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

【讨论】:

您不能直接将string 转换为DateTime。您需要改用Parse 方法。 msdn.microsoft.com/en-us/library/1k1skd40.aspx

以上是关于在三元运算中将 null/Nullable 分配给 DateTime的主要内容,如果未能解决你的问题,请参考以下文章