C# Error
CS1716 – Do not use ‘System.Runtime.CompilerServices.FixedBuffer’ attribute. Use the ‘fixed’ field modifier instead.
Reason for the Error & Solution
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
.
Example
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];
}
}
}