La variable 'ReadOnly' no puede ser el destino de una asignación en una expresión lambda dentro de un constructor
Hizo referencia a una variable ReadOnly
desde una expresión lambda, lo que no está permitido. El código siguiente provoca este error al enviar la variable de ReadOnly
m
como el argumento de un parámetro 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
Identificador de error: BC36602
Si es posible, cambie el parámetro
n
de la funciónTest
a un parámetroByVal
, como se muestra en el código siguiente.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
Asigne la variable
ReadOnly
m
a una variable local en el constructor y use la variable local en lugar dem
, como se muestra en el código siguiente.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
Comentarios de .NET
.NET es un proyecto de código abierto. Seleccione un vínculo para proporcionar comentarios: