考虑:
public static T GetValueOrDefault<T>(this IDataReader reader, string columnName)
T returnValue = default(T);
我想实现类似的东西this http://weblogs.asp.net/skillet/archive/2008/06/18/idatareader-extension-methods.aspx检查 DBNull。我可以很好地理解代码,但我不太明白 VB.NET 中的 static T 是什么。有人可以解释一下吗?
相当于static
在VB中Shared
。共享方法通常放在 Helper 类中,因为它们不需要类的实例来运行。
类型 T 表明这是一个泛型方法(这是 VB 9 和 C# 3 中的新功能)。泛型方法实际上将类型作为参数或返回泛型类型。
扩展方法也是 VB 9/C# 3 中的新增功能。这些方法允许您通过添加方法来扩展现有类型。您所需要的只是一个与您的代码在同一命名空间中可用的共享方法,并且在 VB 中,代码必须位于模块中,而不是普通的类中。
模块是一个无法实例化的类,(因此)仅具有共享方法。它是用 Module 关键字代替 class 关键字来声明的。这是您的 VB 代码。
(对于那些知道“幕后”发生了什么的人来说,奇怪地将值类型设置为Nothing
确实在 VB 中进行编译,并且是获取值类型的默认值的受支持方法)。
Imports System.Runtime.CompilerServices
<Extension()> _
Public Shared Function GetValueOrDefault(Of T)(ByVal reader As IDataReader, ByVal columnName As String) As T
Dim returnValue As T = Nothing
End Function
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)