Errore del compilatore CS1666
Impossibile utilizzare buffer a dimensione fissa contenuti in espressioni unfixed. Provare a utilizzare l'istruzione fixed.
Questo errore si verifica se si usa il buffer a dimensione fissa in un'espressione che include un'istanza che non è essa stessa fissa. Il runtime è libero di spostare l'istanza non fissa per ottimizzare l'accesso alla memoria, il che potrebbe causare errori quando si usa il buffer a dimensione fissa. Per evitare questo errore, usare l'fixed
istruzione.
L'esempio seguente genera l'errore 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);
}
}
Feedback su .NET
.NET è un progetto di open source. Selezionare un collegamento per fornire feedback: