Freigeben über


Compilerfehler CS0459

Aktualisiert: November 2007

Fehlermeldung

Die Adresse einer schreibgeschützten lokalen Variablen kann nicht abgerufen werden.
Cannot take the address of a read-only local variable

In C# gibt es drei häufige Szenarios, in denen schreibgeschützte lokale Variablen generiert werden: foreach, using und fixed. In all diesen Fällen ist es nicht zulässig, dass Sie in die schreibgeschützte lokale Variable schreiben oder deren Adresse übernehmen. Dieser Fehler wird generiert, wenn der Compiler erkennt, dass Sie versuchen, die Adresse einer schreibgeschützten lokalen Variablen zu übernehmen.

Beispiel

Im folgenden Beispiel wird der Fehler CS0459 beim Versuch generiert, die Adresse einer schreibgeschützten lokalen Variablen in einer foreach-Schleife und in einem fixed-Anweisungsblock zu übernehmen.

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