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)
这将在类构造函数代码之前发生.这通常更好,但确实有一些限制.
在构造函数中进行设置允许您使用构造函数参数来初始化您的成员.通常,这是为了向您的班级成员提供更多信息所必需的.
此外,在构造函数中设置值时,可以在静态上下文中使用类数据,这与内联方法无关.例如,如果要使用表达式树初始化某些内容,则通常需要在构造函数中,因为表达式树位于静态上下文中,不允许在内联成员初始值设定项中访问类成员.