我应该在哪里创建实例? 哪种方式更好,为什么?
1)在构造函数中?
public class UserController : Controller
{
private UnitOfWork unitofwork;
public UserController(){
unitofwork = new UnitofWork();
}
public ActionResult DoStuff(){
...
2)作为私人班级成员?
public class UserController : Controller
{
private UnitOfWork unitofwork = new UnitofWork();
public ActionResult DoStuff(){
...
答案 0 :(得分:1)
这是个人偏好,真的。有些人更喜欢在构造函数之外初始化,因为没有其他人出现的可能性并且在没有初始化的情况下添加新成员,因为在他们面前有一个例子。
作为一般规则,如果对象的初始化需要任何逻辑或需要参数,那么我更喜欢在构造函数中执行它。无论你选择什么,都要确保保持一致。
编辑:注意,在构造函数中初始化还允许您调用非静态方法和属性
答案 1 :(得分:0)
取决于您想要实现的目标。如果你使用一个字段,它将在构造函数之前初始化,所以你可以稍后做其他事情。
在这个特定的例子中,它没有太大区别(除了序列)。
答案 2 :(得分:0)
我更喜欢将它保留在构造函数中,因为它允许您在不更新调用它的所有位置的情况下将其扩展到行,并且还使您的调用代码更清晰,更简洁。