Переменной, объявленной как ReadOnly, не может быть присвоено значение в лямбда-выражении в конструкторе
Обновлен: Ноябрь 2007
'ReadOnly' variable cannot be the target of an assignment in a lambda expression inside a constructor
Переменная 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
Идентификатор ошибки: 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