1

写这样的犹太教吗?或者有没有可能出现的问题?

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

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

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

4

1 回答 1

1

由于?是 的一种类型Nullable<T>,因此只要您知道实际的返回类型,它就完全没问题并且是“洁净的”。就好像您将方法编写为:

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

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

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

你可以看到这个以获得另一个解释:Nullable DateTime?

于 2013-02-18T18:57:59.363 回答