Možnost Strict On neumožňuje zúžení implicitních převodů typů mezi metodou methodname<> a delegátem< delegatename>.

Při Option Strict použití tohoto parametru nelze provést zúžení převodu mezi datovým typem parametru v delegátu a odpovídajícím parametrem funkce nebo Sub přiřazeným proměnné tohoto typu delegáta. Delegát funkce Del má například jeden parametr typu Integera funkce Conversion1Conversion2a Conversion3 má jeden parametr různých číselných typů.

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  

Vzhledem k tomu, že existuje rozšiřující převod z Integer Integer a do Long, jsou následující přiřazení platná.

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

Převod z Integer na Short je zužující převod. Proto následující přiřazení není platné.

' Not valid.  
Dim funDel3 As Del = AddressOf Conversion3  

ID chyby: BC36663

Oprava této chyby

  • Změňte datový typ parametru v delegátu nebo metodě tak, aby existoval požadovaný rozšiřující vztah.

Viz také