2013-04-10 8 views
5

インスタンスはどこで作成しますか? どのように良いと、なぜですか?Asp.net MVC4、C#オブジェクトインスタンスを作成します。

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

両方のスニペットは芋まったく同じコードまでコンパイルう非静的メソッドの呼び出しやプロパティを作ることができます。 –

答えて

1

本当に個人的な好みです。初期化せずに新しいメンバーを追加するチャンスが少ないため、コンストラクターの外部を初期化することを好む人もいます。

原則として、オブジェクトの初期化でロジックが必要な場合やパラメータが必要な場合は、コンストラクタで行うことをお勧めします。どんな選択をしても、一貫性を保つようにしてください。

EDIT:ノートは、コンストラクタで初期化することも、あなたが

0

達成したいことに応じて。フィールドを使用すると、コンストラクタの前にが初期化され、より前になり、後で他のことを行うことができます。

この特定の例では、(シーケンス以外の)大きな違いはありません。

0

私はそれを呼び出す場所をすべて更新せずに行の下に延長することができ、呼び出しコードをより洗練された形に保ちます。

関連する問題