Error del compilador CS0459
No se puede adquirir la dirección de una variable local de solo lectura
Hay tres escenarios comunes en el lenguaje C# que generan variables locales de solo lectura: foreach
, using
y fixed
. En cada uno de estos casos, no se permite escribir en la variable local de solo lectura ni tomar su dirección. Este error se genera cuando el compilador detecta que se está intentando tomar la dirección de una variable local de solo lectura.
El siguiente ejemplo genera el error CS0459 cuando se intenta tomar la dirección de una variable local de solo lectura en un bucle foreach
y en un bloque de instrucciones fixed
:
// 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;
}
Nota
El compilador de Roslyn se actualizó y este error del compilador se quitó a partir de Visual Studio 2017 versión 15.5, por lo que el código anterior debería compilarse correctamente con esta versión y las posteriores.
Comentarios de .NET
.NET es un proyecto de código abierto. Seleccione un vínculo para proporcionar comentarios: