当我使用ToString时,我的ProcessDate类型为DateTime?
,显示该异常。
dfCalPlanDate.Text = concreteCalPlan.ProcessDate.ToString("d");
感谢您的关注。
答案 0 :(得分:6)
简单:Nullable<T>
(因此,Nullable<DateTime>
,又名DateTime?
)没有方法ToString(String)
。
您可能想要调用DateTime.ToString(String)
。要以无效方式执行此操作,您可以使用C#6的null-conditional operator ?.
:
dfCalPlanDate.Text = concreteCalPlan.ProcessDate?.ToString("d");
这是一种简洁的写作方式:
var date = concreteCalPlan.ProcessDate;
dfCalPlanDate.Text = (date == null ? null : date.ToString("d"));
请注意,如果null
为ProcessDate
,则会产生null
。如果在这种情况下需要其他结果,则可以附加空合并运算符??
:
dfCalPlanDate.Text = concreteCalPlan.ProcessDate?.ToString("d") ?? "no date set";
答案 1 :(得分:3)
ProcessDate不是DateTime。 ProcessDate.Value是。你需要这样做:
dfCalPlanDate.Text = concreteCalPlan.ProcessDate.Value.ToString("d");
记得检查一下DateTime吗?首先有价值。