能用委托解决的事情,接口也都可以解决.如下所示: public static void Main() { , , , }; Util.TransformAll(values, new Squarer()); foreach (int i in values) { Console.WriteLine(i); //输出1,4,9,16 } } public interface ITransformer { int Transform(int x); } public class Util { pub…
stackoverflow上有人问,为什么不能把委托放在一个接口当中? 投票最多的第一个答案第一句话说,“A Delegate is just another type, so you don't gain anything by putting it inside the interface.” 翻译过来大致意思就是:委托只是一种类型,把委托放在接口中你什么也得不到. 看上去挺拗口的,如果你也感觉这句话说的不知所云,那么只能求助于MSDN的接口和委托的定义. 接口:只包含方法.属性.事件或索引…
委托类型定义 C#编译器处理委托时,先自动产生一个派生自System.MulticastDelegate的密封类.这个类与它的基类System.Delegate一起为委托提供必要的基础设施,以维护以后将要调用的方法列表.它含有3个编译器生成的方法,这3个方法的参数与返回值基于委托的声明. public sealed class DelegateName :System.MulticastDelegate{ public DReturnType Invoke (DParams)…