Excel添加编程

rav*_*avi 3 c# excel excel-addins

我试图理解使用C#编写excel的excel.对于这样的项目,有一个名为ThisAddIn.cs的文件,它处理所有事件,如WorkBookOpen,WorkBookClose等.处理这样一个事件的代码是这样的 -

this.Application.WorkbookOpen += new Excel.AppEvents_WorkbookOpenEventHandler(Application_WorkbookOpen);
Run Code Online (Sandbox Code Playgroud)

这看起来很简单,但是我不明白为什么它使用+ =符号进行赋值而不仅仅是=符号.+ =符号在这种类型的赋值中表示什么.它是与C#相关还是与AddIn开发相关的内容.我也是C#的新手.任何帮助,将不胜感激.

谢谢.

Eri*_*ert 12

这是C#中的一个陌生惯例.要知道的事情是:

  • 代表是表示调用一个或多个方法的能力的对象.
  • 两个委托的总和是第三个,在调用时,调用它的summands.
  • 发生事件时,将调用与该事件关联的委托.

例如,如果你有:

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!
Run Code Online (Sandbox Code Playgroud)

现在很清楚为什么+ =表示"将此处理程序与事件相关联"?

(顺便说一下,我在当天写了很多Excel C#加载项代码.)