Переменная ReadOnly не может быть целевым объектом назначения в лямбда-выражении внутри конструктора.
Указана ссылка на переменную 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
, как показано в следующем коде.VBClass 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
, как показано в следующем коде.VBClass 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
Отзыв о .NET
.NET — это проект с открытым исходным кодом. Выберите ссылку, чтобы оставить отзыв: