你已从 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
更正此错误
如果可能,将函数
n中的Test参数更改为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