namespace classanddelegate { class Program { static void Main(string[] args) { //这是类的实例化 Test test = new Test(); //创建一个委托实例的时候,需要确定需要与哪些方法关联起来。 MyDelegate d = new MyDelegate(MyMethod); //创建了一个委托实例,要和方法关联起来 d(); } static void MyMethod() { Console.Write("委托方法"); } } /// <summary> /// delegate 就是一种类型 定义了一个无参无返回值的委托,委托会对应具体的类型 /// </summary> public delegate void MyDelegate(); /// <summary> /// 声明了一个类型 /// </summary> class Test { //类的成员 } }
委托是一种类型,应该说是函数指针,可以用来传递方法的,可以用一个变量来接收方法,这个就是委托。因为委托可以接收方法,所以说定义委托的时候就应该要规定方法的返回值和参数,这样就会限定你所定义的这个委托就只能接收这个方法。这里也体现它是安全的,不是随意指向的。
(一)为什么要有委托呢
委托的作用:委托是一种数据类型,这种数据类型的变量可以赋值一个方法,也就是说我们可以在A方法的参数里面(设置一个delegate变量),就可以把方法作为参数进行传递了。这样做的好处就是:一般来讲,我们的方法调用的话,都会有局限于某一个域中。如果有了委托,方法就不在局限于某个域中,而是在任何地方都可以随便调用。
当你定义一个委托的时候,要严格按照将来存储什么方法来定义。
委托使用步骤
1、定义一个委托
2、声明一个委托变量,委托变量也是一个引用类型。
委托之所以说是安全的,
是因为定义委托的时候是这样的 public deleagate int Method(
类的定义是由关键字class 定义一个类 class 类名
委托的定义是由关键字delegate delegate 委托名称,