The CLR does not support initializing fields like this. To make it work, the C # compiler overwrites your constructor. IL is as follows:
IL_0000: ldarg.0
IL_0001: newobj instance void ConsoleApplication1.Bar::.ctor()
IL_0006: stfld class ConsoleApplication1.Bar ConsoleApplication1.Foo::bar
IL_000b: ldarg.0
IL_000c: call instance void [mscorlib]System.Object::.ctor()
IL_0011: ret
, Bar Foo. , Foo. , , .
, , . , .