. NET学習ノート


public abstract class TaskBase<TSummaryInfo> : ProcessorBase where TSummaryInfo : class, new() 
{ 
  // code 
}
TaskBaseタイプを宣言して、TSummaryInfoクラスを継承する抽象クラスProcessorBase.where TSummaryInfo : classは、TSummaryInfoタイプがクラスである必要があることを意味します.new()はパラメータレス構造であることを意味する.

怠惰な具体化
namespace Project.Controllers {
  public class SomeController : Controller {

    // only instantialize when the instance is needed in the methods of this class
    private ISomeService _someService;
    private ISomeService SomeService => _someService ?? (_someService = new SomeService(new SomeRepository()));


    // do not instantialize in constructor, so that the instances won't be created every time when the class is constructed, unless they are called as parameters from below method.
    public someController () {}

    public void someClass(SomeService){
      //...code
    }
  }
}
命名規則
  • _someService :「バックエンド」変数
  • SomeService、メソッドのパラメータ、またはちょうど
  • のクラス