使用'this'作为参数在另一个构造函数中调用构造函数

时间:2015-04-28 23:53:33

标签: c#

我有以下代码

 public Insight3DPluginControl(Insight3DPlugin plugin, MapViewModel viewModel)
            : base(plugin)
        {
            InitializeComponent();
            RXMouse = new RXMapMouse(this);
            eob_tool = new EOBTool(RXMouse);
         }

我一直试图在新的RXMapMouse()中使用'this',这是由'this的构造函数调用的。我试图理解这样做的原因以及将要调用的设计模式。

我理解传递给RXMapMouse()之前的对象已经初始化了,但是这意味着在我们分配RXMouse字段时更改当前的Insight3DPluginControl对象,然后会更改RXMapMouse()内部的那个吗?

1 个答案:

答案 0 :(得分:0)

“this”关键字是表示当前对象的“变量”。

也许这个(:D)会让你更好地理解它:

 public Insight3DPluginControl(Insight3DPlugin plugin, MapViewModel viewModel)
    : base(plugin)
    {
        InitializeComponent();

        Insight3DPluginControl theControl = this;

        RXMouse = new RXMapMouse(theControl);
        eob_tool = new EOBTool(RXMouse);
     }

所以,基本上“RXMapMouse”需要一个“Insight3DPluginControl”的实例,它是构造函数,并在该行中发送代码所在的当前Insight3DPluginControl。