1

(重複していたらごめんなさい、nullableかプリミティブか何かをチェックするかどうかわかりません)

変数 Type のオブジェクトの配列を作成しています。int、、または(おそらく列挙型ではありませんが、それらはstring正しいですか?)のいずれかです。 PointMyCustomClassint


入力:配列要素の型。

ブラック ボックス:タイプを構築する必要があるかどうかを確認します。配列を作成し、必要に応じて各要素を作成します (現時点では重要ではないため、デフォルト値を使用します)。コンストラクターはパラメーターなし ( -> 関数の失敗) である必要がありますが、文字列を特別な型として扱います。

出力: 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;
}
4

2 に答える 2