Option Strict がオンの場合、デリゲート内のパラメーターのデータ型と、そのデリゲート型の変数に割り当てられている関数または Sub の対応するパラメーターの間で縮小変換することはできません。 たとえば、関数デリゲート Del には型 Integerのパラメーターが 1 つあり、関数 Conversion1、 Conversion2、および 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
このエラーを解決するには
- デリゲートまたはメソッドのパラメーターのデータ型を変更して、必要な拡大関係が存在するようにします。
関連項目
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET