英語で読む

次の方法で共有


Option Strict On では、メソッド '<メソッド名>' とデリゲート '<デリゲート名>' の間の暗黙的な型の変換で縮小変換を許可していません

Option Strict がオンの場合、デリゲート内のパラメーターのデータ型と、そのデリゲート型の変数に割り当てられている関数または Sub の対応するパラメーターの間で縮小変換することはできません。 たとえば、関数デリゲート Del には型 Integerのパラメーターが 1 つあり、関数 Conversion1Conversion2、および Conversion3 には異なる数値型のパラメーターが 1 つあります。

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  

Integer から Integer および Longへの拡大変換があるので、次の割り当ては有効です。

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

Integer から Short への変換は縮小変換です。 したがって、次の割り当ては有効ではありません。

' Not valid.  
Dim funDel3 As Del = AddressOf Conversion3  

エラー ID: BC36663

このエラーを解決するには

  • デリゲートまたはメソッドのパラメーターのデータ型を変更して、必要な拡大関係が存在するようにします。

関連項目