首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Excel加载项编程

Excel加载项编程
EN

Stack Overflow用户
提问于 2013-04-27 06:57:15
回答 2查看 782关注 0票数 3

我正在尝试理解使用C#编程的excel插件。对于这样的项目,有一个名为ThisAddIn.cs的文件,它处理所有事件,如WorkBookOpen、WorkBookClose等。处理此类事件的代码如下所示-

代码语言:javascript
复制
this.Application.WorkbookOpen += new Excel.AppEvents_WorkbookOpenEventHandler(Application_WorkbookOpen);

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

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2013-04-27 07:08:47

这是C#中比较奇怪的约定之一。需要知道的事情有:

  • 委托是表示调用一个或多个方法的能力的对象。
  • 两个委托的总和是第三个委托,当调用时,会调用它的求和器。
  • 当事件发生时,与该事件关联的委托也会被调用。

举个例子,如果你有:

代码语言:javascript
复制
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#外接程序代码。)

票数 12
EN

Stack Overflow用户

发布于 2013-04-27 07:01:48

+=是用于添加事件处理程序的C#约定。那里的代码意味着您正在将Application_WorkbookOpen函数挂接到WorkbookOpenEvent。

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16246397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档