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 génériques en Visual Basic