public abstract class TaskBase<TSummaryInfo> : ProcessorBase where TSummaryInfo : class, new()
{
// code
}
An abstract class TaskBase which declares TSummaryInfo type and inherits ProcessorBase class.
where TSummaryInfo : class means the TSummaryInfo type needs to be a class. new() means it has a parameter-less construction.
Lazy instantialization
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
}
}
}
Naming Convention:
-
_someService: "back-end" variables -
SomeService: parameter of methods, or just the class
Top comments (0)