Errore del compilatore CS0459
Impossibile accettare l'indirizzo di una variabile locale in sola lettura
Nel linguaggio C# esistono tre scenari che generano variabili locali di sola lettura: foreach
, using
e fixed
. In ognuno di questi casi non è consentito eseguire operazioni di scrittura nella variabile locale di sola lettura, né ottenerne l'indirizzo. Questo errore si verifica quando il compilatore rileva un tentativo di ottenere l'indirizzo di una variabile locale di sola lettura.
L'esempio seguente genera l'errore CS0459 quando si tenta di ottenere l'indirizzo di una variabile locale di sola lettura in un ciclo foreach
e in un blocco di istruzioni fixed
:
// CS0459.cs
// compile with: /unsafe
class Program
{
public unsafe void M1()
{
int[] ints = new int[] { 1, 2, 3 };
foreach (int i in ints)
{
int *j = &i; // CS0459
}
fixed (int *i = &_i)
{
int **j = &i; // CS0459
}
}
private int _i = 0;
}
Nota
Il compilatore Roslyn è stato aggiornato e questo errore del compilatore è stato rimosso a partire da Visual Studio 2017 versione 15.5, quindi il codice precedente verrà compilato correttamente con questa versione e con le versioni successive.
Feedback su .NET
.NET è un progetto di open source. Selezionare un collegamento per fornire feedback: