Možnost Strict On neumožňuje zúžení implicitních převodů typů mezi výrazem lambda a delegátem< "delegatename>"

Pokud Option Strict je zapnuto, nemůžete mít zužující převod mezi datovým typem parametru v delegátu a odpovídajícím parametrem výrazu lambda přiřazeného proměnné tohoto typu delegáta. Například v následujícím kódu má delegát Del jeden parametr typu Integer.

Delegate Function Del(ByVal p As Integer) As String  

Proto odpovídající parametr jakéhokoli výrazu lambda přiřazeného proměnné typu Del může být Integer datový typ nebo jakýkoli datový typ, pro který existuje rozšiřující převod z Integer.

' Valid.  
Dim example1 As Del = Function(n As Integer) "Valid"  
Dim example2 As Del = Function(n As Long) "Valid"  
  
' Not valid.  
Dim example3 As Del = Function(n As Short) "Not Valid"  

ID chyby: BC36662

Oprava této chyby

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

  • Nezadávejte datové typy parametrů ve výrazu lambda. Typy budou odvozeny z odpovídajících parametrů v delegátu.

Dim example4 As Del = Function(n) "Valid"  

Viz také