这类似于能够在 jQuery 回调函数中引用“this”。例如,请参阅 jQuery 类的 Current 属性(https://github.com/nikhilk/scriptsharp/blob/cc/src/Libraries/jQuery/jQuery.Core/jQuery.cs)。
具体来说,如果你这样写:
[ScriptImport]
public static class Global {
[ScriptField, ScriptAlias("this")]
public static object This {
get { return null; }
}
}
然后你可以这样写:
public static class MyCode {
public static bool MyFunction() {
return (Script.GetField<int>(Globals.This, "value") > 100);
}
}
当然,您也可以编写导入的类以返回一个强类型类(再次参见 jQuery 示例),这样就可以在不使用 Script.GetField 的情况下编写 MyFunction。
上面的代码假定使用 script# 0.8 API(您可以从 github 上的项目下载页面获取)。对于以前的构建,将 [ScriptImport] 替换为 [Imported],将 [ScriptField] 替换为 [IntrinsicProperty]。
我希望在 Script 类中放置类似 This 属性的内容,以便在 0.8 最终确定时可以立即使用它。