更新 : 2007 年 11 月
ラムダ式内から ReadOnly 変数を参照しています。これは許可されていません。次のコードでは、ReadOnly 変数 m を ByRef パラメータの引数として送ることにより、このエラーが発生します。
Class Class1
ReadOnly m As Integer
Sub New()
' The use of m triggers the error.
Dim f = Function() Test(m)
End Sub
Function Test(ByRef n As Integer) As String
End Function
End Class
Error ID: BC36602
このエラーを解決するには
可能であれば、関数 Test 内のパラメータ n を ByVal パラメータに変更します。次に例を示します。
Class Class1Fix1 ReadOnly m As Integer Sub New() Dim f = Function() Test(m) End Sub Function Test(ByVal n As Integer) As String End Function End Class
このエラーを解決するには
次のコードに示すように、ReadOnly 変数 m をコンストラクタ内のローカル変数に割り当て、m の代わりにこのローカル変数を使用します。
Class Class1Fix2 ReadOnly m As Integer Sub New() Dim temp = m Dim f = Function() Test(temp) End Sub Function Test(ByRef n As Integer) As String End Function End Class