首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何为Nullable和Not Nullable编写扩展方法

如何为Nullable和Not Nullable编写扩展方法
EN

Stack Overflow用户
提问于 2010-11-10 10:14:41
回答 1查看 375关注 0票数 1

我已经编写了以下扩展方法

代码语言:javascript
运行
复制
    <Extension()>
    Public Function ToUtcIso8601(ByVal dt As Date) As String
        Return String.Format("{0:s}Z", dt)
    End Function

但我还需要一个相同方法的可空版本...我到底该怎么做呢?

这就是我所想的,但我不确定这是不是正确的方式

代码语言:javascript
运行
复制
    <Extension()>
    Public Function ToUtcIso8601(ByVal dt As Date?) As String
        Return If(dt, Nothing).ToUtcIso8601()
    End Function

或者另一种选择

代码语言:javascript
运行
复制
    <Extension()>
    Public Function ToUtcIso8601(ByVal dt As Date?) As String
        Return If(Not dt Is Nothing, ToUtcIso8601(dt), Nothing)
    End Function

我只是不确定这样做的“正确”方式。

编辑过的

这实际上是有效的但是..。

代码语言:javascript
运行
复制
    Public Function ToUtcIso8601(ByVal dt As Date?) As String
        Return If(Not dt Is Nothing, ToUtcIso8601(dt.Value), Nothing)
    End Function

这是正确的方法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-11-10 10:24:17

我会选择第二种选择。不幸的是,当在Date结构上使用扩展方法时,Date?扩展方法不适用,否则您可以只为日期声明一个扩展?类型。为了支持这两种类型,您必须采用与已有方法类似的方法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4140662

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档