Chyba kompilátoru CS0459
Nelze převzít adresu místní proměnné jen pro čtení.
V jazyce C# existují tři běžné scénáře, které generují místní proměnné jen pro čtení: foreach
, using
a fixed
. V každém z těchto případů nemáte oprávnění zapisovat do místní proměnné jen pro čtení nebo převzít její adresu. Tato chyba se vygeneruje, když kompilátor zjistí, že se pokoušíte převzít adresu místní proměnné jen pro čtení.
Následující příklad vygeneruje CS0459 při pokusu o převzetí adresy místní proměnné jen pro čtení ve foreach
smyčce a v fixed
bloku příkazu:
// 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;
}
Poznámka
Kompilátor Roslyn byl aktualizován a tato chyba kompilátoru byla odebrána od sady Visual Studio 2017 verze 15.5, takže předchozí kód by se úspěšně zkompiloval s touto verzí a novější verzí.
Zpětná vazba k produktu .NET
.NET je open source projekt. Vyberte odkaz pro poskytnutí zpětné vazby: