Asp.net MVC4,C#创建对象实例

Exp*_* be 5 .net c# asp.net-mvc asp.net-mvc-4

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

1)在构造函数中?

public class UserController : Controller
{
    private UnitOfWork unitofwork;

    public UserController(){
         unitofwork = new UnitofWork();
    }

    public ActionResult DoStuff(){
    ...
Run Code Online (Sandbox Code Playgroud)

2)作为私人班级成员?

public class UserController : Controller
{
    private UnitOfWork unitofwork = new UnitofWork();

    public ActionResult DoStuff(){
    ...
Run Code Online (Sandbox Code Playgroud)

val*_*rij 1

这确实是个人喜好。有些人更喜欢在构造函数之外进行初始化,只是因为其他人在没有初始化的情况下添加新成员的可能性较小,因为他们面前就有一个示例。

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

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