0

そこで、インデックス 0 と 1 に 2 つの「空/初期化されていない」オブジェクトを期待して、動的に配列を作成するこの単純なコードを作成しました。

私はとても基本的な何かが欠けています... わかりません。前もって感謝します。

public class myclass
{
    int a;
    string b;
    float c;
}

class Program
{
    static void Main(string[] args)
    {
        Type t = Type.GetType("ConsoleApplication1.myclass");
        var r = Array.CreateInstance(t.GetElementType(), 2);
    }
}
4

2 に答える 2

2

これがアレイの仕組みです。それらは最初に入力さdefault(TheTypeOfTheArray)れ、すべての参照型(これは参照型です)に対してですnull

于 2013-01-11T16:37:55.540 に答える
0

配列を作成することは、そのオブジェクトを初期化することを意味しません。たとえば、パラメータのないコンストラクタがない場合ConsoleApplication1.myclass、CLRが暗黙的にそのインスタンスを作成することをどのように期待しますか?

たとえば、このクラスを考えてみましょう。

class Foo
{
    public Foo(int value)
    {
        Value = value;
    }

    public int Value { get; set; }
}

次のコードを使用します。

var array = new Foo[10];

あなたはその中Foo[]に10nullの要素を持っているを得るでしょう。その理由は上で説明されています。

于 2013-01-11T16:37:44.130 に答える