不能在 lambda 表达式中使用“ByRef”参数“<parametername>”

更新:2007 年 11 月

在 Sub 或函数中声明的 lambda 表达式不能使用该 Sub 或函数的任何 ByRef 参数。例如,由于在 lambda 表达式中使用了 ByRef 参数 n,因此,以下代码将导致此错误。

'' Not valid. 
'Sub ExampleSub(ByRef n As Integer)

'    Dim lambda = Function(p As Integer) p + n

'End Sub

**错误 ID:**BC36639

更正此错误

  • 将 ByRef 参数分配给某个局部变量,并且在 lambda 表达式中使用该局部变量,如下面的代码所示:

    Sub ExampleSub(ByRef n As Integer)
    
        Dim temp = n
        Dim lambda = Function(p As Integer) p + temp
    
    End Sub
    

请参见

概念

lambda 表达式