在没有额外方法的情况下转换为Nullable Type

本文关键字:转换 情况下 Nullable Type 方法 | 更新日期: 2023-09-27 18:00:04

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

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

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

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

在没有额外方法的情况下转换为Nullable Type

由于?Nullable<T>的一种类型,只要您知道实际的返回类型,它就完全可以并且是"kosher"。这就好像你在把方法写成:

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

只要你知道以下不会起作用,因为退货类型会有所不同:

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

你可以看到另一个解释:可以为空的DateTime?

相关文章: