7

我希望声明和初始化一维托管项目数组。

如果是 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 数组是否有“数组初始化”语法?什么是正确的语法?这个问题和其他类似问题是否有很好的网络链接?

4

2 回答 2

29

C++/CLI 数组声明和初始化语法与 C# 中的语法没有什么不同。这是一个例子......

array<String^>^ myArray = gcnew array<String^> {"first",  "second"};
于 2009-05-07T14:25:35.567 回答
0

有关托管数组语法的 MSDN 页面:http: //msdn.microsoft.com/en-us/library/ts4c4dw6 (VS.80).aspx

于 2009-05-07T14:26:19.107 回答