5

我应该在哪里创建实例?哪种方式更好,为什么?

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(){
    ...
4

3 回答 3

1

这是个人喜好,真的。有些人喜欢在构造函数之外进行初始化,仅仅是因为其他人出现并添加新成员而不初始化它的可能性较小,因为他们面前有一个示例。

作为一般规则,如果对象的初始化需要任何逻辑或需要参数,那么我更喜欢在构造函数中进行。但是,无论您选择什么,请确保保持一致。

编辑:注意,在构造函数中初始化还允许您调用非静态方法和属性

于 2013-04-10T16:26:30.840 回答
0

取决于你想要达到的目标。如果你使用一个字段来做,它会在构造函数之前被初始化,所以你可以在以后做其他事情。

在这个特定的例子中,它不会有太大的区别(除了序列)。

于 2013-04-10T16:23:56.667 回答
0

我更喜欢将它保留在构造函数中,因为它允许您在需要时将其扩展,而无需更新您调用它的所有位置,并且还可以使您的调用代码更简洁。

于 2013-04-10T16:25:53.537 回答