Dot-Net

託管 C++ 中的數組初始化

  • October 4, 2018

我希望聲明和初始化一維託管項目數組。

如果是 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");

這有兩個問題:

  1. 它更冗長
  2. 它需要我預先聲明數組的大小,這對我的程式碼生成器來說很不方便

託管 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

引用自:https://stackoverflow.com/questions/834903