Вы сражаетесь с основным синтаксисом здесь. Различие между типами значений и ссылочными типами является очень важным в управляемом коде. Вы объявили ref struct
, что требует использования шляпы в объявлении массива. Также очень вероятно, что вам не нужна ссылка на структуру здесь. Они действуют точно как классы и распределяются в куче. Простые структуры, подобные этой, должны иметь структуру value вместо этого, ближайший эквивалент структуры C или C ++.
Не используйте ключевое слово struct в объявлении массива, это синтаксис языка C. Последняя проблема в том, что вы не можете инициализировать такой член, только компилятор C # поддерживает это. Который реализует это путем перемещения кода в конструктор. В C ++ / CLI вы должны сделать это самостоятельно. Итак, вероятный синтаксис, который вам нужен здесь:
public ref class someclass {
private:
value struct somestruct{
char a1;
char a2;
};
array<somestruct>^ variable;
public:
someclass() {
variable = gcnew array<somestruct>(5);
//todo: initialize array members
}
};
Гадание на то, что должно быть частным против публичного.