Leer en inglés

Compartir a través de


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 ReadOnlym como el argumento de un parámetro ByRef .

VB
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

Para corregir este error

  • Si es posible, cambie el parámetro n de la función Test a un parámetro ByVal , como se muestra en el código siguiente.

    VB
    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  
    
  • Asigne la variable ReadOnlym a una variable local en el constructor y use la variable local en lugar de m, como se muestra en el código siguiente.

    VB
    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  
    

Consulte también