C# Excel加载项编程
我试图理解使用C#编写excel外接程序。对于这样的项目,有一个名为ThisAddIn.cs的文件,它处理所有事件,如WorkBookOpen、WorkBookClose等。 处理此类事件的代码如下所示:C# Excel加载项编程,c#,excel,excel-addins,C#,Excel,Excel Addins,我试图理解使用C#编写excel外接程序。对于这样的项目,有一个名为ThisAddIn.cs的文件,它处理所有事件,如WorkBookOpen、WorkBookClose等。 处理此类事件的代码如下所示: this.Application.WorkbookOpen += new Excel.AppEvents_WorkbookOpenEventHandler(Application_WorkbookOpen); 这看起来很简单,但我不明白为什么它使用+=符号来赋值,而不仅仅是=符号。 +=符号
this.Application.WorkbookOpen += new Excel.AppEvents_WorkbookOpenEventHandler(Application_WorkbookOpen);
这看起来很简单,但我不明白为什么它使用+=符号来赋值,而不仅仅是=符号。
+=符号在这种类型的赋值中表示什么。它是与C#有关还是特定于AddIn development。我对C#也很陌生。
任何帮助都将不胜感激
谢谢。+=是用于添加事件处理程序的C#约定。那里的代码意味着您正在将应用程序\u WorkbookOpen函数连接到WorkbookOpenEvent
这是C#中的一个奇怪约定。要知道的是:
- 委托是表示调用一个或多个方法的能力的对象
- 两个委托的和是第三个委托,当调用它时,调用它的和
- 当事件发生时,将调用与该事件关联的委托
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#编程8年了,我从来不知道这超出了“连接事件处理程序”的语法范围。我发誓我每周都会发现这种语言的一些新的方面。。。