Freigeben über


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

Referenz

AddressOf-Operator

Nullable<T>