以下の例のリストで何が起こっているのかを理解するのに苦労しています:
public class DataObject
{
public List<object> SomeObjects { get; set; }
}
class Program
{
static void Main(string[] args)
{
var dataObj = new DataObject()
{
SomeObjects = { new object() },
};
Console.ReadKey();
}
}
プロパティがインスタンス化されていないため、の作成はdataOjb
明らかに失敗します。インスタンス化されたコンストラクターを持つことができるSomeObjects
ため、コンパイルエラーはないと思います。それを考えると、次のようなことをしようとすると:DataObject
SomeObjects
List<int> SomeObjects;
SomeObjects = {1, 2, 3, 4};
これは明らかに機能しません。
List<int> SomeObjects = new List<int>();
SomeObjects = {1, 2, 3, 4};
それで、私の実際の質問にたどり着くために、最初のオブジェクト初期化子で呼び出されたものは何ですか(調べてみましたが見つかりません)、なぜそれは異なる動作をするのですか、そしてこのように使用できる他の場所はありますか?