次の方法で共有


コンストラクタ内のラムダ式では、'ReadOnly' 変数を代入式のターゲットにすることはできません

更新 : 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
    

参照

概念

ラムダ式

参照

ReadOnly (Visual Basic)

コンストラクタとデストラクタの使用方法