Methoden von "System.Nullable(Of T)" können nicht als Operanden des "AddressOf"-Operators verwendet werden
Aktualisiert: November 2007
Methods of 'System.Nullable(Of T)' cannot be used as operands of the 'AddressOf' operator
Eine Anweisung verwendet den AddressOf-Operator mit einem Operanden, der eine Prozedur der Nullable<T>-Struktur darstellt.
Fehler-ID: BC32126
So beheben Sie diesen Fehler
Ersetzen Sie den Prozedurnamen in der AddressOf-Klausel durch einen Operanden, der kein Member von Nullable<T> ist.
Schreiben Sie eine Klasse, die die Methode von Nullable<T> umschließt, den Sie verwenden möchten. Im folgenden Beispiel wird durch die NullableWrapper-Klasse eine neue Methode mit dem Namen GetValueOrDefault definiert. Da diese neue Methode kein Member von Nullable<T> ist, kann sie auf nullInstance, eine Instanz eines Typs, der NULL-Werte zulässt, angewendet werden, um ein Argument für AddressOf zu bilden.
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
Siehe auch
Konzepte
Auf NULL festlegbare Werttypen
Generische Typen in Visual Basic