Partager via


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;
}