“System.Nullable(Of T)”的方法不能用作“AddressOf”运算符的操作数
更新:2007 年 11 月
语句使用 AddressOf 运算符和代表 Nullable<T> 结构的过程的操作数。
**错误 ID:**BC32126
更正此错误
将 AddressOf 子句中的过程名称替换为非 Nullable<T> 成员的操作数。
编写一个对要使用的 Nullable<T> 的方法进行包装的类。在下面的示例中,NullableWrapper 类定义一个名为 GetValueOrDefault 的新方法。因为此新方法不是 Nullable<T> 的成员,所以可将其应用于 nullInstance(一个可以为 null 的类型的实例)以构成 AddressOf 的参数。
Module Module1 Delegate Function Deleg() As Integer Sub Main() Dim nullInstance As New Nullable(Of Integer)(1) Dim del As Deleg ' GetValueOrDefault is a method of the Nullable generic ' type. It cannot be used as an operand of AddressOf. ' del = AddressOf nullInstance.GetValueOrDefault ' The following line uses the GetValueOrDefault method ' defined in the NullableWrapper class. del = AddressOf (New NullableWrapper(Of _ Integer)(nullInstance)).GetValueOrDefault Console.WriteLine(del.Invoke()) End Sub Class NullableWrapper(Of T As Structure) Private m_Value As Nullable(Of T) Sub New(ByVal Value As Nullable(Of T)) m_Value = Value End Sub Public Function GetValueOrDefault() As T Return m_Value.Value End Function End Class End Module