首先,什么是方法。
多行代码,组成了一个方法,所以,方法,本来不是一种类型;
但是,如果不是一种类型,就无法实现使用左值=右值表达式,进行赋值。
所以,需要一种能标识方法的类型,然后,创建这种表示方法的变量。
delegate就是方法的类型;
区分一个方法,需要判断三个属性值, 我定义一个表示方法的类。
public class Method { public string MethodName{get;set;} public List<object> parameters{get;set;} public object ResturnValue{get;set;} }
有没有发现
方法是鸭子模型
方法可以接收任何符合签名的方法,
无论方法是属于谁,class,struct,interface,delegate lambda expression都合法, 无论是否有具体实现,比如接口的方法签名,是合法的;
合法的理由, 就是,他们长的差不多,具有相同的名字,相同的参数,相同的返回值。
这回,看出来了。这就是一个鸭子模型。