Inicialización de matriz en C ++ administrado
-
08-07-2019 - |
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:
- Es más detallado
- 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?
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