Verschachtelte Objekt-Initialisierer-syntax

Resharper hat gerade vorgeschlagen, die folgenden refactoring zu mir:

//Constructor initializes InitializedProperty but
//the UninitializedSubproperty is uninitialized.
var myInstance = new MyClass();
myInstance.InitializedProperty.UninitializedSubproperty = new MyOtherClass();

//becomes

var myInstance = new MyClass
    {
        InitializedProperty = { UninitializedSubproperty = new MyOtherClass() }
    };

Habe ich noch nie gesehen, diese Art der Objekt-Initialisierung vor. Insbesondere sehe ich nicht, wie

InitializedProperty = { UninitializedSubproperty = new MyOtherClass() }

macht keinen Sinn - es ist nicht zuweisen etwas zu InitializedProperty.

Ist dieses Verhalten überall angegeben?

mögliche Duplikate von Initialisierer-syntax
Sie können daran interessiert sein, diesem post, die beschreibt die Semantik und die Anwendungsfälle für diese Art der Initialisierung

InformationsquelleAutor Rawling | 2013-05-28

Schreibe einen Kommentar