Frage

Ich mag einen 1D verwalteten Array von Elementen deklarieren und zu initialisieren.

Wenn es C # -Code ist, würde ich es so schreiben:

VdbMethodInfo[] methods = new VdbMethodInfo[] {
    new VdbMethodInfo("Method1"),
    new VdbMethodInfo("Method2")
};

Ich versuche zu schreiben, die gleiche Sache in verwaltetem (na ja, eigentlich bin ich ein Programm generieren schreiben) C ++ ...

Bisher habe ich:

typedef array<VdbMethodInfo^, 1> MethodArray;
// How do I avoid pre-declaring the size of the array up front?
MethodArray^ methods = gcnew MethodArray(2);
methods[0] = gcnew VdbMethodInfo("Method1");
methods[1] = gcnew VdbMethodInfo("Method2");

Es gibt zwei Probleme mit diesem:

  1. Es ist ausführlicher
  2. Es erfordert mich die Größe des Arrays zu deklarieren vorne, die für meinen Code-Generator unbequem ist

Gibt es eine "Feldinitialisierung" Syntax für die GC-Arrays in Managed C ++? Was ist die korrekte Syntax? Gibt es einen guten Web-Link für diesen und ähnliche Fragen?

War es hilfreich?

Lösung

Der C ++ / CLI Array deklarieren & initialisieren Syntax von dem in C # nicht unähnlich ist. Hier ist ein Beispiel ...

array<String^>^ myArray = gcnew array<String^> {"first",  "second"};

Andere Tipps

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top