我试图做到以下几点。
var handler = e => { handle(); item.Unbind("event", this); }
item.Bind("event", handler);
在JavaScript中,这将正常工作,但ScriptSharp取代JavaScript的这个参考与该代码包含类方法的实例。 如何避免这种行为,并得到从拉姆达本身的拉姆达的参考?
我试图做到以下几点。
var handler = e => { handle(); item.Unbind("event", this); }
item.Bind("event", handler);
在JavaScript中,这将正常工作,但ScriptSharp取代JavaScript的这个参考与该代码包含类方法的实例。 如何避免这种行为,并得到从拉姆达本身的拉姆达的参考?
这里是你如何能做到这一点(假设绑定需要委托有行动的签名):
SomeObject item = ...;
Action handler = null;
handler = delegate() {
// do something ... eg. call Handle();
item.Unbind("event", handler);
};
item.Bind("event", handler);
此外,看到这样一个问题: 如何写脚本#函数与任何对象,因为这被调用,而不只是在它被定义的类的实例? 对于编写代码的技术,其生成在脚本中的“本”的参考。