c#-面向对象编程工厂方法构造函数
在C#和构造函数依赖注入中,前两个构造函数之间的区别是什么。具体来说,c#-面向对象编程工厂方法构造函数,c#,oop,dependency-injection,C#,Oop,Dependency Injection,在C#和构造函数依赖注入中,前两个构造函数之间的区别是什么。具体来说,:第一个构造函数中的此表示什么。它只是第二个构造函数的简写还是其他什么 private readonly IRepositoryOne _repositoryOne; private readonly IRepositoryTwo _repositoryTwo; private readonly IService _service; private readonly ApplicationDbC
:第一个构造函数中的此
表示什么。它只是第二个构造函数的简写还是其他什么
private readonly IRepositoryOne _repositoryOne;
private readonly IRepositoryTwo _repositoryTwo;
private readonly IService _service;
private readonly ApplicationDbContext _context;
public MyContructor()
: this(new RepositoryOne(new ApplicationDbContext()),
new RepositoryTwo(new ApplicationDbContext())
new Service())
{
}
public MyContructor()
{
_context = new ApplicationDbContext();
_repositoryOne = new RepositoryOne(_context);
_repositoryTwo = new RepositoryTwo(_context);
_service = new Service();
}
public MyContructor(IRepositoryOne repositoryOne,
IRepositoryTwo repositoryTwo,
IService service)
{
_repositoryOne = repositoryOne;
_repositoryTwo = repositoryTwo;
_service = service;
}
您不应该创建前两个构造函数,因为依赖项注入容器将处理如何创建存储库和服务
this
关键字用于以下场景:
Public Person(string name){}
public Person(string name, string lastname) :this(name)
{
// calls first constructor and then..
// do something with lastname
}
@L.古特哈特第一个调用第三个。@adam78这似乎是一个。你想要达到的最终目标是什么?”因为我会删除前两个构造函数,并让DI容器将显式依赖项注入到构造函数3中,这样就可以拥有多个构造函数。