美文网首页
c#语法集之-----委托

c#语法集之-----委托

作者: 敏徕 | 来源:发表于2019-03-30 11:52 被阅读0次

    委托

    委托是一种特殊类型的对象,包含的是一个或多个方法的地址(方法的引用)。
    提供一种方法的原型,实现方法的回调。
    委托是类型安全的类,它定义了返回类型和参数的类型。

    • 声明委托类型


      image

      delegate void Sum(int x); //该方法带有一个int参数,并返回void
      delegate string GetString();//该方法没有参数,返回string
      delegate int GetInt(string start);//该方法带有一个string参数,并返回int

       //其语法类似方法的定义,但没有方法体,定义的前面要加上关键字delegate,相当于定义一个新类
       //可以在委托的定义上加上常见的访问修身符:public、private、protected等
       public delegate int GetAInt();
      
    • 有两种创建委托对象的方式(两种创建方式等价的):

           //1.使用带new运算符的对象创建
           GetAInt firstInt = new GetAInt(ToInt); //创建委托并保存引用
           Console.WriteLine("firstInt is {0}", firstInt());
      
           //2. 使用快捷语法
           GetAInt twoInt = ToInt2; //创建委托并保存引用
      

    委托的实例代码:

    class Program
        {
            delegate int GetAInt();//申明委托
            static void Main(string[] args)
            {
                GetAInt firstInt = ToInt; //创建委托并保存引用
                Console.WriteLine("firstInt is {0}", firstInt());
                
                GetAInt twoInt = ToInt2; //创建委托并保存引用
                Console.WriteLine("twoInt is {0}", twoInt());
    
                //组合调用列表
                GetAInt sumInt = firstInt + twoInt;
                Console.ReadKey();
            }
            public static int ToInt()
            {
                Console.WriteLine("----------------ToInt-------------- is 1");
                return 1;
            }
            public static int ToInt2()
            {
                Console.WriteLine("----------------ToInt2------------- is 2");
                return 2;
            }
        }
    

    运行后的结果:


    结果

    相关文章

      网友评论

          本文标题:c#语法集之-----委托

          本文链接:https://www.haomeiwen.com/subject/csyjbqtx.html