我在某些代码中看到了这一点:
class BlahService: ResolverThingy
{
private IBlahData blahData => this.ResolveDependency<IBlahData>();
BlahService(Func<IBlahData> blahDataFactory)()
{
}
}
它试图做什么...我曾经像这样编写代码:
class BlahService: ResolverThingy
{
private IBlahData insightData;
BlahService(IBlahData blahDataFactory)()
{
this.insightData = blahDataFactory
}
}
是否要延迟IBlahData
类型的内存声明?
答案 0 :(得分:2)
它只是将委托传递给构造函数,以便在运行时解析IBlahData的类型(实现)。
class BlahService: ResolverThingy
{
private Func<IBlahData> blahData => ResolveDependency<IBlahData>();
public BlahService(Func<IBlahData> blahDataFactory)
{
this.blahData = blahDataFactory;
}
// usage
public void SomeMethod()
{
var blahDataImpl = this.blahData();
// now you can use blahDataImpl
}
}