我正在尝试执行以下操作。
var handler = e => { handle(); item.Unbind("event", this); }
item.Bind("event", handler);
在JavaScript中,这可以正常工作,但是ScriptSharp通过引用包含该代码的类的实例来替换JavaScript。如何避免这种行为并从lambda本身获取对lambda的引用?
答案 0 :(得分:0)
这是你如何做到的(假设Bind带有一个Action的签名代表):
SomeObject item = ...;
Action handler = null;
handler = delegate() {
// do something ... eg. call Handle();
item.Unbind("event", handler);
};
item.Bind("event", handler);
另外,请参阅此问题:How to write a function in script# to be called with any object as this, not just with the instance of the class in which it is defined?了解编写在脚本中生成“this”引用的代码的技术。