C#将当前对象传递给另一个对象?

apo*_*lfj 3 c#

我正在创建一个具有这样的构造函数的对象......

public class BusinessLogic()
{

     public BusinessLogic()
      {

           BusinessLogicSubClass blsc = new BusinessLogicSubClass(and I want to pass in BusinessLogic here)
      }
}
Run Code Online (Sandbox Code Playgroud)

我这样做是因为我希望BusinessLogicSubClass在完成一个或另一个方法时回调到BusinessLogic中的各种方法.BusinessLogicSubClass还使用构造函数注入,以便我的单元测试可以与NMock2一起使用.

这里的任何建议都会有所帮助,谢谢你提前!

The*_*urf 6

 public BusinessLogic()
  {
       BusinessLogicSubClass blsc = new BusinessLogicSubClass(this);
  }
Run Code Online (Sandbox Code Playgroud)

另一种方法(解决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();
    }
}
Run Code Online (Sandbox Code Playgroud)


Jon*_*eet 6

您可以this在构造函数中使用.但这通常不是一个好主意,因为这意味着你在对象完成构建之前已经发布了一个引用.

不清楚为什么你在类本身内创建一个子类 - 我怀疑你的继承层次结构可能并不理想.您能否提供更多细节,以便我们能够推荐更好的设计模式?