防止C#异常并找到更优雅的方法来检查可为空的值

CreatedDate = meta.CreatedDate.HasValue ? meta.CreatedDate.Value.ToShortDateString : null

这行代码引发异常“无法确定条件表达式的类型,因为方法组和null之间没有隐式转换。”


有什么工作方法可以进行此检查和/或更优雅(更不难看)吗?


笔记:


myObject = (dynamic)new

{

    CreatedDate = meta.CreatedDate.HasValue ? meta.CreatedDate.Value.ToShortDateString : null

}


慕标琳琳
浏览 172回答 2
2回答

月关宝盒

您缺少()用于方法调用的调用括号,ToShortDateString()就像调用我们需要的方法一样,因此,您的代码行应如下所示:CreatedDate = meta.CreatedDate.HasValue ? meta.CreatedDate.ToShortDateString() : null ;但是,如果您使用的是C#6,则可以通过null传播运算符执行以下操作:String CreatedDate = meta.CreatedDate?.ToShortDateString();或者:String CreatedDate = meta.CreatedDate?.Value.ToShortDateString();如果您的C#6以下,请尝试:String CreatedDate = meta.CreatedDate.HasValue ? meta.CreatedDate..ToShortDateString() ? null;

HUH函数

您可以使用空条件运算符:CreatedDate = meta.CreatedDate?.ToShortDateString();
打开App,查看更多内容
随时随地看视频慕课网APP