Impossibile usare il parametro '<parametername>' di 'ByRef' in un'espressione lambda

Un'espressione lambda dichiarata all'interno di Sub o di una funzione non può usare alcun parametro ByRef di quella funzione Sub . Ad esempio, il codice seguente causerà questo errore perché l'espressione lambda usa il parametro ByRefn .

'' Not valid.
'Sub ExampleSub(ByRef n As Integer)  
  
'    Dim lambda = Function(p As Integer) p + n  
  
'End Sub  

ID errore: BC36639

Per correggere l'errore

  • Assegnare il parametro ByRef a una variabile locale e usare la variabile locale al posto dell'espressione lambda, come mostrato nel codice seguente:

    Sub ExampleSub(ByRef n As Integer)  
    
        Dim temp = n  
        Dim lambda = Function(p As Integer) p + temp  
    
    End Sub  
    

Vedi anche