Error del compilador CS0459
Actualización: noviembre 2007
Mensaje de error
No se puede adquirir la dirección de la variable local de sólo lectura
Cannot take the address of a read-only local variable
Hay tres escenarios habituales en el lenguaje C# que generan variables locales de sólo lectura: foreach, using y fixed. En ninguno de estos casos se puede escribir en la variable local de sólo lectura ni utilizar su dirección. Se genera este error cuando el compilador detecta que se está intentando utilizar la dirección de una variable local de sólo lectura.
Ejemplo
El siguiente ejemplo genera el error CS0459 cuando se intenta utilizar la dirección de una variable local de sólo lectura en un bucle foreach y en un bloque de instrucciones 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;
}