我已经编写了以下扩展方法
<Extension()>
Public Function ToUtcIso8601(ByVal dt As Date) As String
Return String.Format("{0:s}Z", dt)
End Function但我还需要一个相同方法的可空版本...我到底该怎么做呢?
这就是我所想的,但我不确定这是不是正确的方式
<Extension()>
Public Function ToUtcIso8601(ByVal dt As Date?) As String
Return If(dt, Nothing).ToUtcIso8601()
End Function或者另一种选择
<Extension()>
Public Function ToUtcIso8601(ByVal dt As Date?) As String
Return If(Not dt Is Nothing, ToUtcIso8601(dt), Nothing)
End Function我只是不确定这样做的“正确”方式。
编辑过的
这实际上是有效的但是..。
Public Function ToUtcIso8601(ByVal dt As Date?) As String
Return If(Not dt Is Nothing, ToUtcIso8601(dt.Value), Nothing)
End Function这是正确的方法吗?
发布于 2010-11-10 10:24:17
我会选择第二种选择。不幸的是,当在Date结构上使用扩展方法时,Date?扩展方法不适用,否则您可以只为日期声明一个扩展?类型。为了支持这两种类型,您必须采用与已有方法类似的方法。
https://stackoverflow.com/questions/4140662
复制相似问题