之间是否有任何技术差异
Action foo = null;
和
Action foo = delegate { };
和
Action foo = () => {};
从语义上讲,它们都代表一个空委托,但我想知道是否还有更多内容。
我之所以要问的是我需要初始化一个委托,以便以后可以在其调用列表中添加方法。如果未初始化,则无效:
Action foo;
...
foo += () => { Console.WriteLine("Hello world!"); };
// compiler error CS0165: use of unassigned local variable
但我想初始化我的Action
,以便尽可能减少内存和执行时间。那么,如果确实存在差异,哪一个会节省更多空间/时间?
奖金问题:是否还有其他基本方法来定义语义上空的委托,如果是的话,还有其他事情会在幕后发生吗?