我正在尝试了解使用 C# 编程的 excel 添加。对于这样的项目,有一个名为 ThisAddIn.cs 的文件,它处理所有事件,如 WorkBookOpen、WorkBookClose 等。 处理此类事件的代码是这样的 -
this.Application.WorkbookOpen += new Excel.AppEvents_WorkbookOpenEventHandler(Application_WorkbookOpen);
这看起来很简单,但我不明白为什么它使用 += 符号而不是 = 符号进行赋值。 += 符号在此类赋值中表示什么。它是与 C# 相关的还是特定于 AddIn 开发的。我对 C# 也很陌生。 任何帮助将不胜感激。
谢谢。
最佳答案
这是 C# 中的陌生约定之一。要知道的事情是:
- 委托(delegate) 是一个对象,代表调用一个或多个方法的能力。
- 两个委托(delegate)的总和是第三个委托(delegate),当调用它时,调用它的被加数。
- 当事件发生时,将调用与该事件关联的委托(delegate)。
例如,如果您有:
static void M() { Console.WriteLine("Hello!"); }
static void N() { Console.WriteLine("Goodbye!"); }
...
Action foo = M;
foo(); // Hello!
Action bar = N;
bar(); // Goodbye!
Action sum = foo + bar;
sum(); // Hello! Goodbye!
foo += bar; // Same as foo = foo + bar
foo(); // Hello! Goodbye!
现在清楚为什么 += 表示“将此处理程序与事件相关联”了吗?
(顺便说一下,我以前写过很多 Excel C# 插件代码。)
关于c# - Excel 添加编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16246397/