Option Strict On では、ラムダ式とデリゲート '<delegatename>' 間の暗黙的な型の縮小変換は許可されていません
更新 : 2007 年 11 月
Option Strict がオンになっていると、デリゲートのパラメータのデータ型と、そのデリゲート型の変数に割り当てられているラムダ式の対応するパラメータのデータ型との間で、縮小変換を行うことはできません。たとえば、次のコードでは、デリゲート Del に 1 つの Integer パラメータがあります。
Delegate Function Del(ByVal p As Integer) As String
Del 型の変数に割り当てられているラムダ式の対応するパラメータは、Integer 型、または 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: BC36662
このエラーを解決するには
拡大変換になるように、デリゲートまたはラムダ式のパラメータのデータ型を変更します。
ラムダ式でパラメータのデータ型を指定しません。データ型は、デリゲートに指定されている対応するパラメータから推論されます。
Dim example4 As Del = Function(n) "Valid"