Opsi Strict On tidak memungkinkan penyempitan dalam konversi jenis implisit antara metode '<methodname>' dan delegasi '<delegatename>'

Dengan Option Strict aktif, Anda tidak dapat mempersempit konversi antara jenis data parameter dalam delegasi dan parameter terkait dari suatu fungsi atau Sub ditetapkan ke variabel jenis delegasi tersebut. Misalnya, fungsi delegasi Del memiliki satu parameter jenis Integer, dan fungsi Conversion1, Conversion2,dan Conversion3 memiliki satu parameter dari jenis numerik yang berbeda.

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  

Karena ada konversi yang melebar dari Integer ke Integer dan ke Long, penugasan berikut valid.

' Valid.  
Dim funDel1 As Del = AddressOf Conversion1  
Dim funDel2 As Del = AddressOf Conversion2  

Konversi dari Integer ke Short adalah konversi penyempitan. Oleh karena itu, penugasan berikut tidak valid.

' Not valid.  
Dim funDel3 As Del = AddressOf Conversion3  

ID Kesalahan: BC36663

Untuk memperbaiki kesalahan ini

  • Ubah jenis data parameter dalam delegasi atau metode sehingga hubungan pelebaran yang diperlukan ada.

Lihat juga