Option Strict On does not allow narrowing in implicit type conversions between method '<methodname>' and delegate '<delegatename>'
With Option Strict on, you cannot have a narrowing conversion between the data type of a parameter in a delegate and the corresponding parameter of a function or Sub assigned to a variable of that delegate type. For example, function delegate Del has one parameter of type Integer, and functions Conversion1, Conversion2, and Conversion3 have one parameter of different numeric types.
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
Because there is a widening conversion from Integer to Integer and to Long, the following assignments are valid.
' Valid. Dim funDel1 As Del = AddressOf Conversion1 Dim funDel2 As Del = AddressOf Conversion2
The conversion from Integer to Short is a narrowing conversion. Therefore, the following assignment is not valid.
Error ID: BC36663
To correct this error
Change the data type of the parameter in the delegate or the method so that the required widening relationship exists.