在没有额外方法的情况下转换为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<T>
的一种类型,只要您知道实际的返回类型,它就完全可以并且是"kosher"。这就好像你在把方法写成:
private Nullable<DateTime> getDate(object date)
{
...
}
只要你知道以下不会起作用,因为退货类型会有所不同:
DateTime myDateTimeVariable = getdate(someObject);
,因为这是一个类型转换问题。
你可以看到另一个解释:可以为空的DateTime?