Error del compilador CS1666
No puede usar los búferes de tamaño fijo contenidos en expresiones de tipo unfixed. Pruebe a usar la instrucción fixed.
Este error se produce si usa el búfer de tamaño fijo en una expresión que implica una instancia que no es de tipo fixed. El tiempo de ejecución es libre de mover la instancia que es de tipo unfixed para optimizar el acceso a la memoria, lo que puede provocar errores al usar el búfer de tamaño fijo. Para evitar este error, use la instrucción fixed
.
El ejemplo siguiente genera la advertencia CS1666:
// CS1666.cs
// compile with: /unsafe /target:library
unsafe struct S
{
public fixed int buffer[1];
}
unsafe class Test
{
S field = new S();
private bool example1()
{
return (field.buffer[0] == 0); // CS1666 error
}
private bool example2()
{
// OK
fixed (S* p = &field)
{
return (p->buffer[0] == 0);
}
}
private bool example3()
{
S local = new S();
return (local.buffer[0] == 0);
}
}
Comentarios de .NET
.NET es un proyecto de código abierto. Seleccione un vínculo para proporcionar comentarios: