DateTime的方法'ToString'?有0个参数但是用1个参数调用

时间:2017-01-24 08:59:56

标签: c# datetime tostring nullable

当我使用ToString时,我的ProcessDate类型为DateTime?,显示该异常。

dfCalPlanDate.Text = concreteCalPlan.ProcessDate.ToString("d");

感谢您的关注。

2 个答案:

答案 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"));

请注意,如果nullProcessDate,则会产生null。如果在这种情况下需要其他结果,则可以附加空合并运算符??

dfCalPlanDate.Text = concreteCalPlan.ProcessDate?.ToString("d") ?? "no date set";

答案 1 :(得分:3)

ProcessDate不是DateTime。 ProcessDate.Value是。你需要这样做:

dfCalPlanDate.Text = concreteCalPlan.ProcessDate.Value.ToString("d");

记得检查一下DateTime吗?首先有价值。