无需额外方法即可转换为Nullable类型

时间:2013-02-18 18:45:09

标签: c# type-conversion nullable

写这样的犹太洁食?或者是否存在可能出现的问题?

private DateTime? getDate(object date)
{
    return date != null ? Convert.ToDateTime(date) : (DateTime?)null;
}

我已经看到很多问题提出了类似的问题,但答案总是给出一个完成转换工作的扩展方法,我想知道我是否可以跳过这一步并写出这样的,或者是否有一些边缘情况我不算?

我也在示例中使用DateTime,但我认为这可以适用于任何可以为空的类型。

1 个答案:

答案 0 :(得分:1)

由于?Nullable<T>的一种类型,只要您了解实际的返回类型,它就完全没问题并且“犹太洁食”。就像你在编写方法一样:

private Nullable<DateTime> getDate(object date)
{
   ...
}

只要您知道以下内容不起作用,因为返回类型会有所不同:

DateTime myDateTimeVariable = getdate(someObject);因为这是类型转换问题。

您可以看到另一个解释:Nullable DateTime?