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