我正在尝试使用 VSCode 订阅事件(添加事件侦听器)。在 Visual Studio 中,我会执行以下操作来订阅...
//Subscribe to sql events
myClassObj.MySQLEvents += MyModule_MySQLEvents;
取消订阅我会用...
//Unsubscribe from sql events
myClassObj.MySQLEvents -= MyModule_MySQLEvents;
通常,在输入 myClassObj.MySQLEvents +=
后,VS 会开始自动添加事件处理程序方法的模板,帮助您命名等。但是,使用 VSCode,我输入相同的内容并且它什么也不做(就 IntelliSense/自动完成去)。有没有办法在 VSCode 中做不同的事情?
此外,当我尝试手动添加事件侦听器,然后尝试添加以下回调方法以使事件触发时,我收到错误消息。
private void MyModule_MySQLEvents(object sender, EventArgs e) {}
我得到的错误是 csharp(CS0120)...
<块引用>非静态字段、方法或方法需要对象引用 属性 'Program.MyModule_MySQLEvents(object, EventArgs)' [我的申请]
注意:不确定它是否重要,但我是第一次在控制台应用程序中尝试此操作(在 Main()
方法内)。通常,当它在 VS 中对我有用时,我会在 Form 构造函数方法中执行此操作。
答案 0 :(得分:0)
所以我认为 Intellisense 不会像 Visual Studio 那样自动创建新的事件处理程序。我最终不得不自己创建它,而我得到的错误是因为控制台应用程序使用了静态构造函数。
我最终需要像这样将 static
关键字添加到我的回调方法中...
private static void MyModule_MySQLEvents(object sender, EventArgs e) {}
这按预期工作,没有问题。
答案 1 :(得分:0)
您可以只输入一个新的函数名称,然后使用“显示修复”(灯泡)来生成该函数,或者按 Ctrl+。< /kbd>