おそらく奇妙なことですが、.Netに下限> 0の配列を作成する必要があります。これは、最初は次を使用して可能であるように思われます。
Array.CreateInstance(typeof(Object), new int[] {2}, new int[] {9});
目的の結果を生成します(下限が9に設定されたオブジェクトの配列)。ただし、作成された配列インスタンスを他のメソッドに渡すことはできなくなり、Object[]
次のようなエラーが発生することが予想されます。
System.Object[*]
にキャストすることはできませんSystem.Object[]
。配列タイプのこの違いは何ですか?これをどのように克服できますか?
編集:テストコード=
Object x = Array.CreateInstance(typeof(Object), new int[] {2}, new int[] {9});
Object[] y = (Object[])x;
これは次のように失敗します:「タイプ'System.Object[*]'のオブジェクトをタイプ'System.Object[]'にキャストできません。」
また、このアプローチは、複数のディメンションを使用する場合に機能することにも注意してください。
Object x = Array.CreateInstance(typeof(Object), new int[] {2,2}, new int[] {9,9});
Object[,] y = (Object[,])x;
これは問題なく動作します。