当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《C#将当前对象传递给另一个对象?》经验,为你挑选了2个好方法。

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

public class BusinessLogic()
{

     public BusinessLogic()
      {

           BusinessLogicSubClass blsc = new BusinessLogicSubClass(and I want to pass in BusinessLogic here)
      }
}

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

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



1> TheSmurf..:
 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();
    }
}



2> Jon Skeet..:

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

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

推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有