考虑:
public static T GetValueOrDefault(this IDataReader reader, string columnName) T returnValue = default(T);
我想实现像这样检查的DBNull.我可以很好地遵循代码,但我不太明白VB.NET中的静态T是什么.有人可以解释一下吗?
相当于static
VB中的Shared
.共享方法通常放在Helper类中,因为它们不需要运行类的实例.
类型T表示这是一种通用方法(这是VB 9和C#3中的新功能).泛型方法有效地将类型作为参数或返回泛型类型.
扩展方法也是VB 9/C#3中的新增功能.这些方法允许您通过添加方法来扩展现有类型.您只需要一个Shared方法,它可以在与您的代码相同的命名空间中使用,而在VB中,代码必须位于模块中,而不是普通类.
模块是一个无法实例化的类,因此只有共享方法.它使用Module关键字声明,而不是class关键字.这是你在VB中的代码.
(对于那些知道"在幕后"发生了什么的人来说奇怪地设置一个值类型来Nothing
在VB中编译并且是获得值类型的默认值的支持方式).
Imports System.Runtime.CompilerServices_ Public Shared Function GetValueOrDefault(Of T)(ByVal reader As IDataReader, ByVal columnName As String) As T Dim returnValue As T = Nothing End Function