我正在创建一个具有这样的构造函数的对象......
public class BusinessLogic() { public BusinessLogic() { BusinessLogicSubClass blsc = new BusinessLogicSubClass(and I want to pass in BusinessLogic here) } }
我这样做是因为我希望BusinessLogicSubClass在完成一个或另一个方法时回调到BusinessLogic中的各种方法.BusinessLogicSubClass还使用构造函数注入,以便我的单元测试可以与NMock2一起使用.
这里的任何建议都会有所帮助,谢谢你提前!
public BusinessLogic() { BusinessLogicSubClass blsc = new BusinessLogicSubClass(this); }
另一种方法(解决Jon Skeet的评论)将是一个构造函数和一个初始化程序,它使用"this"指针:
public class BusinessLogic { private BusinessLogicSubClass blsc = null; public BusinessLogic() {} public void Initialize() { blsc = new BusinessLogicSubClass(this); } } public class Implementor { public void SomeFunction() { BusinessLogic bl = new BusinessLogic(); bl.Initialize(); } }
您可以this
在构造函数中使用.但这通常不是一个好主意,因为这意味着你在对象完成构建之前已经发布了一个引用.
不清楚为什么你在类本身内创建一个子类 - 我怀疑你的继承层次结构可能并不理想.您能否提供更多细节,以便我们能够推荐更好的设计模式?