Inizializzazione di array in Managed C ++
-
08-07-2019 - |
Domanda
Desidero dichiarare e inizializzare un array di elementi gestito 1D.
Se fosse il codice C #, lo scriverei in questo modo:
VdbMethodInfo[] methods = new VdbMethodInfo[] {
new VdbMethodInfo("Method1"),
new VdbMethodInfo("Method2")
};
Sto cercando di scrivere (beh, in realtà, sto scrivendo un programma generate) la stessa cosa in C ++ gestito ...
Finora ho:
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");
Ci sono due problemi con questo:
- È più prolisso
- Mi richiede di dichiarare in anticipo la dimensione dell'array, il che è scomodo per il mio generatore di codice
Esiste una "inizializzazione di array" " sintassi per array GC in Managed C ++? Qual è la sintassi corretta? Esiste un buon collegamento Web per questa e altre domande simili?
Soluzione
L'array C ++ / CLI dichiara & amp; la sintassi di inizializzazione non è diversa da quella in C #. Ecco un esempio ...
array<String^>^ myArray = gcnew array<String^> {"first", "second"};
Altri suggerimenti
Pagina MSDN sulla sintassi dell'array gestito: http: / /msdn.microsoft.com/en-us/library/ts4c4dw6(VS.80).aspx
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow