我有以下代码
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()内部的那个吗?
答案 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。