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 に答える