代码之家  ›  专栏  ›  技术社区  ›  Paul Hollingsworth

托管C++中的数组初始化

  •  7
  • Paul Hollingsworth  · 技术社区  · 16 年前

    我希望声明并初始化一个1d托管的项数组。

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

    2 回复  |  直到 6 年前
        1
  •  27
  •   Martin    16 年前

    C++/CLI数组声明和初始化语法与C语言中的语法没有什么不同。举个例子…

    array<String^>^ myArray = gcnew array<String^> {"first",  "second"};
    
        2
  •  0
  •   Tim Robinson    16 年前