Array-Initialisierung in Managed C ++
-
08-07-2019 - |
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:
- Es ist ausführlicher
- 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?
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
MSDN-Seite auf verwalteten Array-Syntax: http: / /msdn.microsoft.com/en-us/library/ts4c4dw6(VS.80).aspx