Die ReadOnly-Variable kann nicht das Ziel einer Zuweisung in einem Lambdaausdruck innerhalb eines Konstruktors sein.

Sie haben aus einem Lambdaausdruck heraus auf eine ReadOnly -Variable verwiesen, was nicht zulässig ist. Im folgende Code wird dieser Fehler durch Senden der ReadOnly Variablen m als Argument für einen ByRef -Parameter verursacht.

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 nach Möglichkeit Parameter n in 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  
    
  • Weisen Sie die ReadOnly Variable m einer lokalen Variablen im Konstruktor zu, und verwenden Sie die lokale Variable anstelle von m, wie im folgenden Code dargestellt.

    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  
    

Siehe auch