Die 'ReadOnly'-Variable kann nicht das Ziel einer Zuweisung in einem Lambda-Ausdruck innerhalb eines Konstruktors sein
Aktualisiert: November 2007
'ReadOnly' variable cannot be the target of an assignment in a lambda expression inside a constructor
Sie haben innerhalb eines Lambdaausdrucks auf eine ReadOnly-Variable verwiesen. Dies ist nicht zulässig. Der folgende Code verursacht diesen Fehler, indem er die ReadOnly-Variable m als Argument an einen ByRef-Parameter sendet.
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
Fehler-ID: BC36602
So beheben Sie diesen Fehler
Ändern Sie, wenn möglich, den Parameter n in der Funktion Test in einen ByVal-Parameter, wie im folgenden Code gezeigt.
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
So beheben Sie diesen Fehler
Weisen Sie die ReadOnly-Variable m einer lokalen Variable im Konstruktor zu, und verwenden Sie die lokale Variable anstelle von m, wie in folgendem Code gezeigt.
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