Pregunta

Deseo declarar e inicializar una matriz administrada de elementos 1D.

Si fuera código C #, lo escribiría así:

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

Estoy tratando de escribir (bueno, en realidad, estoy escribiendo un programa generar) lo mismo en C ++ administrado ...

Hasta ahora tengo:

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");

Hay dos problemas con esto:

  1. Es más detallado
  2. Requiere que declare el tamaño de la matriz por adelantado, lo cual es inconveniente para mi generador de código

¿Existe una " inicialización de matriz " sintaxis para matrices de GC en Managed C ++? ¿Cual es la sintaxis correcta? ¿Existe un buen enlace web para esta y otras preguntas similares?

¿Fue útil?

Solución

La matriz C ++ / CLI declara & amp; la sintaxis de inicialización no es diferente de la de C #. Aquí hay un ejemplo ...

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

Otros consejos

Página de MSDN en sintaxis de matriz administrada: http: / /msdn.microsoft.com/en-us/library/ts4c4dw6(VS.80).aspx

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top