BC32126: Os métodos de 'System.Nullable(Of T)' não podem ser usados como operandos do operador 'AddressOf'
Uma instrução usa o operador AddressOf
com um operando que representa um procedimento da estrutura Nullable<T>.
ID do erro: BC32126
Para corrigir este erro
Substitua o nome do procedimento na cláusula
AddressOf
por um operando que não seja membro de Nullable<T>.Escreva uma classe que encapsula o método de Nullable<T> que você deseja usar. No exemplo a seguir, a classe
NullableWrapper
define um novo método chamadoGetValueOrDefault
. Como esse novo método não é um membro de Nullable<T>, ele pode ser aplicado anullInstance
, uma instância de um tipo que permite valor nulo, para formar um argumento paraAddressOf
.
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
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de