Поделиться через


Ошибка компилятора CS0625

Обновлен: Ноябрь 2007

Сообщение об ошибке

"поле": типы экземпляров полей, помеченные атрибутом "StructLayout(LayoutKind.Explicit)", должны иметь атрибут "FieldOffset"
'field': instance field types marked with StructLayout(LayoutKind.Explicit) must have a FieldOffset attribute

Если структура помечена явным атрибутом StructLayout, то у всех полей структуры должен иметься атрибут FieldOffset. Дополнительные сведения см. в разделе Класс "StructLayoutAttribute".

Следующий пример приводит к возникновению ошибки CS0625:

// CS0625.cs
// compile with: /target:library
using System;
using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Explicit)]
struct A
{
   public int i;   // CS0625 not static; an instance field
}

// OK
[StructLayout(LayoutKind.Explicit)]
struct B
{
   [FieldOffset(5)]
   public int i;
}