Compilerfehler CS1666
Sie können keine Puffer fester Größe in ungebundenen Ausdrücken verwenden. Verwenden Sie die fixed-Anweisung.
Dieser Fehler tritt auf, wenn Sie einen Puffer mit fester Größe in einem Ausdruck mit einer Instanz verwenden, die selbst nicht gebunden ist. Die Runtime kann die ungebundene Klasse verschieben, um den Speicherzugriff zu optimieren, was jedoch bei Verwendung eines Puffers fester Größe zu Fehlern führen kann. Um diesen Fehler zu vermeiden, verwenden Sie die fixed
-Anweisung.
Im folgenden Beispiel wird CS1666 generiert:
// 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 zu .NET
.NET ist ein Open Source-Projekt. Wählen Sie einen Link aus, um Feedback zu geben: