Nullable(Of T)对象上的VB.NET扩展,给出了类型错误
发布时间:2020-12-17 07:25:44 所属栏目:百科 来源:网络整理
导读:我想要的代码: Extension()Public Function NValue(Of T)(ByVal value As Nullable(Of T),ByVal DefaultValue As T) As T Return If(value.HasValue,value.Value,DefaultValue)End Function 基本上我想要它做的是将默认值赋给可空对象,并且根据它是否为null
我想要的代码:
<Extension()> Public Function NValue(Of T)(ByVal value As Nullable(Of T),ByVal DefaultValue As T) As T Return If(value.HasValue,value.Value,DefaultValue) End Function 基本上我想要它做的是将默认值赋给可空对象,并且根据它是否为null,它将给出自己的值或默认值. 所以使用Date对象,它会这样做,这有效,但我无法使用通用T: <Extension()> Public Function NValue(ByVal value As Date?,ByVal DefaultValue As Date) As Date Return If(value.HasValue,DefaultValue) End Function Dim test As Date? = Nothing Dim result = test.NValue(DateTime.Now) 变量’result’现在具有当前的DateTime. 当我用T尝试它时,我得到这个错误(Visual Studio在Nullable(Of T)中放置T: 非常感谢您的帮助! 问候 解决方法
尝试:
Public Function NValue(Of T as Structure)(ByVal value As Nullable(Of T as Structure),ByVal DefaultValue As T) As T 我不确定你是否需要两者作为结构条款. 更新 根据以下评论,只需要第一个条款: Public Function NValue(Of T as Structure)(ByVal value As Nullable(Of T),ByVal DefaultValue As T) As T (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |