Erreur du compilateur CS0459
Mise à jour : novembre 2007
Message d'erreur
Impossible de prendre l'adresse d'une variable locale en lecture seule
Cannot take the address of a read-only local variable
En langage C#, trois scénarios communs génèrent des variables locales en lecture seule : foreach, using et fixed. Dans chacun de ces cas, vous n'êtes pas autorisé à écrire dans la variable locale en lecture seule ou à prendre son adresse. Cette erreur est générée lorsque le compilateur se rend compte que vous essayez de prendre l'adresse d'une variable locale en lecture seule.
Exemple
L'exemple suivant génère l'erreur CS0459 lorsqu'une tentative est effectuée pour prendre l'adresse d'une variable locale en lecture seule dans une boucle foreach et dans un bloc d'instruction fixed.
// CS0459.cs
// compile with: /unsafe
class A
{
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;
}