C#在类构造函数中分配类属性有什么好处吗?

one*_*ney 3 c# oop constructor

例如,如果我有这样的类:

namespace Sample
{
     public Class TestObject
     {
          private Object MyAwesomeObject = new MyAwesomeObject();
     }
}
Run Code Online (Sandbox Code Playgroud)

设置它是否有任何好处,以便在这样的构造函数中设置属性?

namespace Sample
{
     public Class TestObject
     {
          private Object MyAwesomeObject;

          public TestObject()
          {
                MyAwesomeObject = new MyAwesomeObject()
          }
     }
}
Run Code Online (Sandbox Code Playgroud)

Ree*_*sey 10

这两者(几乎)相同.

在内联定义初始化程序时:

private Object MyAwesomeObject = new MyAwesomeObject(); 
Run Code Online (Sandbox Code Playgroud)

这将在类构造函数代码之前发生.这通常更好,但确实有一些限制.

在构造函数中进行设置允许您使用构造函数参数来初始化您的成员.通常,这是为了向您的班级成员提供更多信息所必需的.

此外,在构造函数中设置值时,可以在静态上下文中使用类数据,这与内联方法无关.例如,如果要使用表达式树初始化某些内容,则通常需要在构造函数中,因为表达式树位于静态上下文中,不允许在内联成员初始值设定项中访问类成员.