アイテムの 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 つの問題があります。
- もっと冗長です
- 配列のサイズを前もって宣言する必要があるため、コード ジェネレーターにとって不便です。
Managed C++ に GC 配列の「配列初期化」構文はありますか? 正しい構文は何ですか? この質問や他の同様の質問への適切な Web リンクはありますか?