Как создать массив структур в структуре в C#?C#

Место общения программистов C#
Ответить
Anonymous
 Как создать массив структур в структуре в C#?

Сообщение Anonymous »

Как инициализировать массив структур в структуре в c#? < /p>
public const int MAX_AXIS = 10;

struct realprm
{ /* real parameter */
long prm_val; /* value of variable */
long dec_val; /* number of places of decimals */
};

[StructLayout(LayoutKind.Explicit)]
unsafe struct iodbpsd
{
[FieldOffset(0)] short datano; /* parameter number */
[FieldOffset(2)] short type; /* upper byte:type */

/* lower byte:axis */{
[FieldOffset(4)] char cdata; /* bit/byte parameter */
[FieldOffset(4)] short idata; /* word parameter */
[FieldOffset(4)] long ldata; /* 2-word parameter */
[FieldOffset(4)] realprm rdata; /* real parameter */
[FieldOffset(4)] fixed char cdatas[MAX_AXIS];/*bit/byte parameter with axis*/
[FieldOffset(4)] fixed short idatas[MAX_AXIS];/* word parameter with axis */
[FieldOffset(4)] fixed long ldatas[MAX_AXIS];/* 2-word parameter with axis */
[FieldOffset(4)] realprm rdatas[MAX_AXIS];/* real parameter with axis */
};
< /code>
Последняя запись, realprm, выбрасывает ошибки компилятора: < /p>
CS0270 Размер массива не может быть указан в объявлении переменной (попробуйте инициализацию с помощью «Нового» выражения) < /p>
CS0650 Declarator Declarator. To declare a fixed size buffer field, use the fixed keyword before the field type.
The 'fixed' keyword won't work for structs, and C# does not allow 'new' keyword initialization:
CS0573 Field declaration: cannot have instance field initializers in structs
Is there any elegant way to initialize an array like this in C#?

Подробнее здесь: https://stackoverflow.com/questions/796 ... truct-in-c
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»