美文网首页
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#语法集之-----委托

    委托 委托是一种特殊类型的对象,包含的是一个或多个方法的地址(方法的引用)。提供一种方法的原型,实现方法的回调。委...

  • CLR commen language runtime

    CLR的执行模型(C#) 流程:1.将源代码编译成委托代码——>2.将委托代码合并成程序集——>3.执行程序集代码...

  • C# 委托

    C#委托 C#中的委托(Delegate)类似于C或C++中函数的指针。委托(Delegate)是存有对某个方法的...

  • C#入门笔记(四) - 委托

    语法 delegate 是关键词,注:EventHandler是一个声明委托的微软C#的命名标准。 在现实生活中,...

  • 教小明学一点点编程—C#篇(0)

    像小明这样使用C#的新同学,一定都会被C#的复杂的委托事件机制所困惑,那么我们不如解释一下什么是C#中委托。 委托...

  • C#委托 匿名函数 Lambda

    C# 中委托的发展#在 C# 1.0 中,通过使用在代码中其他位置定义的方法显式初始化委托来创建委托的实例。 C#...

  • C#基础之委托

    委托委托让我们可以把函数引用保存在变量中。这就像在 C++ 中使用 typedef保存函数指针一样。委托使用关键字...

  • C#之delegate(委托)

    定义 委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做...

  • 2020-02-19

    C# 委托 (一)—— 委托、 泛型委托与Lambda表达式 原创wnvalentin 最后发布于2018-08-...

  • (转).NET面试题系列[7] - 委托与事件

    委托和事件 委托在C#中具有无比重要的地位。 C#中的委托可以说俯拾即是,从LINQ中的lambda表达式到(包括...

网友评论

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

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