写这样的犹太洁食?或者是否存在可能出现的问题?
private DateTime? getDate(object date)
{
return date != null ? Convert.ToDateTime(date) : (DateTime?)null;
}
我已经看到很多问题提出了类似的问题,但答案总是给出一个完成转换工作的扩展方法,我想知道我是否可以跳过这一步并写出这样的,或者是否有一些边缘情况我不算?
我也在示例中使用DateTime,但我认为这可以适用于任何可以为空的类型。
答案 0 :(得分:1)
由于?
是Nullable<T>
的一种类型,只要您了解实际的返回类型,它就完全没问题并且“犹太洁食”。就像你在编写方法一样:
private Nullable<DateTime> getDate(object date)
{
...
}
只要您知道以下内容不起作用,因为返回类型会有所不同:
DateTime myDateTimeVariable = getdate(someObject);
因为这是类型转换问题。
您可以看到另一个解释:Nullable DateTime?