MSDN:Object and Collection Initializersでこれについての説明は見当たりませんでした。具体的には、サブタイプ自体を新しくするのではなく、オブジェクト初期化子を使用してサブタイプのプロパティを設定できることに注意しました。
構文自体は、MSDN ページに関する私の理解と一致しません。オブジェクト初期化子を使用して初期化されたオブジェクトのフィールドを設定できることは理解していますが、フィールドのフィールドを設定できることが文書化されている場所がわかりません。
これが合法であることは私には理にかなっています。で同じことを達成できbt.subType.subTypeValue=5;
ます。
class BasicSubType
{
public int subTypeValue;
}
class BasicType
{
public BasicSubType subType {get;private set;}
public BasicType()
{
subType = new BasicSubType();
}
}
void Main()
{
BasicType bt = new BasicType{subType={subTypeValue=5}};
}