Difference in explicit and non-explicit C# class initializers

Viewed 63

What is the resulting difference between these two class initializers? Both seem to be syntactically correct in C#. Is the second one a shortcut for the first?

Class1 class1 = new Class1()
{
    Boolean1 = true,
    Class2Instance = new Class2
    {
        Boolean2 = true,
    },
};

and

Class1 class1 = new Class1()
{
    Boolean1 = true,
    Class2Instance =
    {
        Boolean2 = true,
    },
};

I ask because obviously it is not valid to do this:

Class1 class1 =
{
    Boolean1 = true,
    Class2Instance = new Class2()
    {
        Boolean2 = true,
    },
};
1 Answers
Related