Ciao a tutti, sono riuscito a risolvere il mistero... (
).
la dichiarazione "array<System::String^> ^args" non e' altro che una dichiarazione di tipo attraverso un template, infatti cercando nel documento di riferimento dello standard CLI :
codice:
A CLI array type is declared using a built-in pseudo-template ref class having the following declaration:
namespace cli {
template<typename T, int rank = 1>
ref class array : System::Array {
};
}
An example of using this pseudo-template is:
int main() {
array<int>^ arr1D = gcnew array<int>(4) {10, 42, 30, 12};
Console::Write("The {0} elements are:", arr1D->Length);
for each (int i in arr1D) {
Console::Write("{0,3}", i);
}
Console::WriteLine();
array<int, 3>^ arr3D = gcnew array<int, 3>(10, 20, 30);
}
Quindi, se ho ben capito, nel mio caso viene dichiarato un vettore ad una dimensione di puntatori a stringhe ( nel C non gestito sarebbe char args*[] per capirci ) che e' a sua volta passato alla funzione come puntatore gestito ( ^ );