我正在尝试理解使用C#编程的excel插件。对于这样的项目,有一个名为ThisAddIn.cs的文件,它处理所有事件,如WorkBookOpen、WorkBookClose等。处理此类事件的代码如下所示-
this.Application.WorkbookOpen += new Excel.AppEvents_WorkbookOpenEventHandler(Application_WorkbookOpen);这看起来很简单,但是我不明白为什么它使用+=符号来赋值,而不是仅仅使用=符号。在这种类型的赋值中,+=符号表示什么。它是与C#相关的还是特定于AddIn开发的。我也是C#的新手。任何帮助都将不胜感激。
谢谢。
发布于 2013-04-27 07:08:47
这是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#外接程序代码。)
发布于 2013-04-27 07:01:48
+=是用于添加事件处理程序的C#约定。那里的代码意味着您正在将Application_WorkbookOpen函数挂接到WorkbookOpenEvent。
http://msdn.microsoft.com/en-us/library/ms743596.aspx
https://stackoverflow.com/questions/16246397
复制相似问题