C#高级通过类来理解学习委托

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 
    {
        //类的成员
    }
}
View Code

委托是一种类型,应该说是函数指针,可以用来传递方法的,可以用一个变量来接收方法,这个就是委托。因为委托可以接收方法,所以说定义委托的时候就应该要规定方法的返回值和参数,这样就会限定你所定义的这个委托就只能接收这个方法。这里也体现它是安全的,不是随意指向的。

(一)为什么要有委托呢

委托的作用:委托是一种数据类型,这种数据类型的变量可以赋值一个方法,也就是说我们可以在A方法的参数里面(设置一个delegate变量),就可以把方法作为参数进行传递了。这样做的好处就是:一般来讲,我们的方法调用的话,都会有局限于某一个域中。如果有了委托,方法就不在局限于某个域中,而是在任何地方都可以随便调用。

当你定义一个委托的时候,要严格按照将来存储什么方法来定义。

委托使用步骤

1、定义一个委托

2、声明一个委托变量,委托变量也是一个引用类型。

委托之所以说是安全的,

是因为定义委托的时候是这样的 public deleagate int Method(

类的定义是由关键字class 定义一个类 class 类名 

委托的定义是由关键字delegate  delegate 委托名称,

原文地址:https://www.cnblogs.com/gdouzz/p/4924224.html