在构造函数内的 lambda 表达式中,“ReadOnly”变量不能作为赋值的目标
更新:2007 年 11 月
您在 lambda 表达式内引用了 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
**错误 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