在三元运算中将 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的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法使用三元运算符 - 或类似的方法 - 来选择要分配的变量?

三元运算符(Inline If without Else)

变量的三元运算符分配优先级

Javascript 三元运算符和赋值

三元运算符在 React 组件中用于设置 datalist 选项的值时失败

在 C# 中将字符串文字分配给字符串