Compilerfehler CS1716Compiler Error CS1716

Verwenden Sie nicht das Attribut „System.Runtime.CompilerServices.FixedBuffer“.Do not use 'System.Runtime.CompilerServices.FixedBuffer' attribute. Verwenden Sie stattdessen den Feldmodifizierer „fixed“.Use the 'fixed' field modifier instead.

Dieser Fehler tritt in einem Abschnitt mit unsicherem Code auf, wobei dieser Abschnitt eine Arraydeklaration mit festgelegter Größe enthält, die einer Felddeklaration ähnelt.This error arises in an unsafe code section that contains a fixed-size array declaration similar to a field declaration. Verwenden Sie dieses Attribut nicht.Do not use this attribute. Verwenden Sie stattdessen das Schlüsselwort fixed.Instead, use the keyword fixed.

BeispielExample

Im folgenden Beispiel wird der Fehler CS1716 generiert.The following example generates CS1716.

// CS1716.cs  
// compile with: /unsafe  
using System;  
using System.Runtime.CompilerServices;  

public struct UnsafeStruct  
{  
    [FixedBuffer(typeof(int), 4)]  // CS1716  
    unsafe public int aField;  
    // Use this single line instead of the above two lines.  
    // unsafe public fixed int aField[4];  
}  

public class TestUnsafe  
{  
    static int Main()  
    {  
        UnsafeStruct us = new UnsafeStruct();  
        unsafe  
        {  
            if (us.aField[0] == 0)  
                return us.aField[1];  
            else  
                return us.aField[2];  
        }  
    }  
}