(重複していたらごめんなさい、nullableかプリミティブか何かをチェックするかどうかわかりません)
変数 Type のオブジェクトの配列を作成しています。int
、、または(おそらく列挙型ではありませんが、それらはstring
正しいですか?)のいずれかです。
Point
MyCustomClass
int
入力:配列要素の型。
ブラック ボックス:タイプを構築する必要があるかどうかを確認します。配列を作成し、必要に応じて各要素を作成します (現時点では重要ではないため、デフォルト値を使用します)。コンストラクターはパラメーターなし ( -> 関数の失敗) である必要がありますが、文字列を特別な型として扱います。
出力: object
(実行時の型はint[]
or string[]
orPoint[]
など)
私が直面している問題は、でいっぱいの配列を作成することです
null
。プリミティブと構造体int[]
は問題なく動作しますが、クラスは " null[]
" になります。
私がこれまでに持っているもの(すべてをキャッチしたかどうかはわかりません):
public object createArray(Type arrayElementType, int arrayLength)
{
Array a = Array.CreateInstance(arrayElementType, arrayLength);
if (!arrayElementType.IsPrimitive) // correct would be: if (!arrayElementType.IsValueType)
for (int j = 0; j < arrayLength; j++)
a.SetValue(Activator.CreateInstance(arrayElementType), j);
return a;
}