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:

  1. È più prolisso
  2. 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?

È stato utile?

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
scroll top