7

アイテムの 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");

これには 2 つの問題があります。

  1. もっと冗長です
  2. 配列のサイズを前もって宣言する必要があるため、コード ジェネレーターにとって不便です。

Managed C++ に GC 配列の「配列初期化」構文はありますか? 正しい構文は何ですか? この質問や他の同様の質問への適切な Web リンクはありますか?

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 に答える