Dot-Net
託管 C++ 中的數組初始化
我希望聲明和初始化一維託管項目數組。
如果是 C# 程式碼,我會這樣寫:
VdbMethodInfo[] methods = new VdbMethodInfo[] { new VdbMethodInfo("Method1"), new VdbMethodInfo("Method2") };我正在嘗試在託管 C++ 中編寫(好吧,實際上,我正在編寫程序生成)相同的東西……
到目前為止,我有:
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");這有兩個問題:
- 它更冗長
- 它需要我預先聲明數組的大小,這對我的程式碼生成器來說很不方便
託管 C++ 中的 GC 數組是否有“數組初始化”語法?什麼是正確的語法?這個問題和其他類似問題是否有很好的網路連結?
C++/CLI 數組聲明和初始化語法與 C# 中的語法沒有什麼不同。這是一個例子……
array<String^>^ myArray = gcnew array<String^> {"first", "second"};
有關託管數組語法的 MSDN 頁面:http: //msdn.microsoft.com/en-us/library/ts4c4dw6 (VS.80).aspx