我写了以下扩展方法
<Extension()>
Public Function ToUtcIso8601(ByVal dt As Date) As String
Return String.Format("{0:s}Z", dt)
End Function
但是我也需要一个同样方法的Nullable版本......我到底该怎么做?
这就是我的想法,但我不确定这是否正确
<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
这是正确的方法吗?
答案 0 :(得分:2)
我会选择第二种选择。不幸的是,在Date结构上使用扩展方法时,Date?扩展方法不适用,否则您只能为Date声明一个扩展名?类型。您必须采用与已有的方法类似的方法来支持这两种类型。