Excel添加编程

本文关键字:编程 添加 Excel | 更新日期: 2023-09-27 18:11:09

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

this.Application.WorkbookOpen += new Excel.AppEvents_WorkbookOpenEventHandler(Application_WorkbookOpen);

这看起来很简单,但我不明白为什么它使用+=符号来赋值,而不仅仅是=符号。+=符号在这种类型的赋值中表示什么?它是与c#相关的东西还是与插件开发相关的东西?我也是c#的新手。如有任何帮助,不胜感激。

谢谢。

Excel添加编程

这是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#约定。这里的代码意味着你将Application_WorkbookOpen函数连接到WorkbookOpenEvent。

http://msdn.microsoft.com/en-us/library/ms743596.aspx