Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Com Option Strict on, você não pode ter uma conversão de estreitamento entre o tipo de dados de um parâmetro em um delegado e o parâmetro correspondente de uma função ou Sub atribuído a uma variável desse tipo de delegado. Por exemplo, o delegado Del de função tem um parâmetro do tipo Integer, e funções Conversion1, Conversion2e Conversion3 tem um parâmetro de diferentes tipos numéricos.
Delegate Function Del(ByVal p As Integer) As String
Function Conversion1(ByVal n As Integer) As String
Return "Valid"
End Function
Function Conversion2(ByVal n As Long) As String
Return "Valid"
End Function
Function Conversion3(ByVal n As Short) As String
Return "Not valid"
End Function
Como há uma conversão crescente de Integer para Integer e para Long, as atribuições a seguir são válidas.
' Valid.
Dim funDel1 As Del = AddressOf Conversion1
Dim funDel2 As Del = AddressOf Conversion2
A conversão de Integer para Short é uma conversão estreita. Portanto, a atribuição a seguir não é válida.
' Not valid.
Dim funDel3 As Del = AddressOf Conversion3
ID de erro: BC36663
Para corrigir este erro
- Altere o tipo de dados do parâmetro no delegado ou no método para que a relação de ampliação necessária exista.