Compiler Error CS1716

Do not use 'System.Runtime.CompilerServices.FixedBuffer' attribute. Use the 'fixed' field modifier instead.

This error arises in an unsafe code section that contains a fixed-size array declaration similar to a field declaration. Do not use this attribute. Instead, use the keyword fixed.

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();
            if (us.aField[0] == 0)
                return us.aField[1];
                return us.aField[2];

Community Additions