Partager via


Les méthodes de 'System.Nullable(Of T)' ne peuvent pas être utilisées en tant qu'opérandes de l'opérateur 'AddressOf'

Mise à jour : novembre 2007

Methods of 'System.Nullable(Of T)' cannot be used as operands of the 'AddressOf' operator

Une instruction utilise l'opérateur AddressOf avec un opérande qui représente une procédure de la structure Nullable<T>.

ID d'erreur : BC32126

Pour corriger cette erreur

  • Remplacez le nom de la procédure dans la clause AddressOf par un opérande qui n'est pas un membre de Nullable<T>.

  • Écrivez une classe qui encapsule la méthode de Nullable<T> que vous souhaitez utiliser. Dans l'exemple suivant, la classe NullableWrapper définit une nouvelle méthode nommée GetValueOrDefault. Étant donné que cette nouvelle méthode n'est pas un membre de Nullable<T>, elle peut s'appliquer à nullInstance, une instance d'un type nullable, pour former un argument pour 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
    

Voir aussi

Concepts

Types valeur nullables

Types génériques en Visual Basic

Référence

AddressOf, opérateur

Nullable<T>