Ошибка компилятора CS1716
Обновлен: Ноябрь 2007
Сообщение об ошибке
Не используйте атрибут "System.Runtime.CompilerServices.FixedBuffer". Вместо него используйте модификатор поля "fixed".
Do not use 'System.Runtime.CompilerServices.FixedBuffer' attribute. Use the 'fixed' field modifier instead.
Эта ошибка возникает в разделе небезопасного кода, который содержит объявление массива фиксированного размера, подобного объявлению поля. Этот атрибут использовать не рекомендуется. Вместо этого, используйте ключевое слово fixed.
Пример
Следующий пример проводит к созданию ошибки 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];
}
}
}