CreatedDate = meta.CreatedDate.HasValue ? meta.CreatedDate.Value.ToShortDateString : null
这行代码抛出异常'条件表达式的类型无法确定,因为方法组和null之间没有隐式转换。'
是否有任何工作方式来进行此检查和/或更优雅(不那么丑陋)的方式?
注意:
myObject = (dynamic)new
{
CreatedDate = meta.CreatedDate.HasValue ? meta.CreatedDate.Value.ToShortDateString : null
}
答案 0 :(得分:4)
对于方法调用,您缺少调用大括号()
它应该是ToShortDateString()
,因为调用我们需要的方法,所以,您的代码行应如下所示:
CreatedDate = meta.CreatedDate.HasValue ? meta.CreatedDate.ToShortDateString() : null ;
但是如果您使用的是C#6,则可以通过空传播运算符执行以下操作:
String CreatedDate = meta.CreatedDate?.ToShortDateString();
或:
String CreatedDate = meta.CreatedDate?.Value.ToShortDateString();
如果你低于C#6,那么试试:
String CreatedDate = meta.CreatedDate.HasValue ? meta.CreatedDate..ToShortDateString() ? null;
答案 1 :(得分:2)
您可以使用空条件运算符:
CreatedDate = meta.CreatedDate?.ToShortDateString();