Option Strict On では、メソッド '<メソッド名>' とデリゲート '<デリゲート名>' の間の暗黙的な型の変換で縮小変換を許可していません
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 に関するフィードバック
.NET はオープンソース プロジェクトです。 フィードバックを提供するにはリンクを選択します。