zoukankan      html  css  js  c++  java
  • C#委托总结-入门篇

    1,概念:委托类型表示对具有特定参数列表和返回类型的方法的引用。 通过委托,可以将方法视为可分配给变量并可作为参数传递的实体。

    委托是引用类型,可以把它看作是用来存方法的一种类型。比如说类型string用来定义存取字符串的变量,那么委托类型delegate就可以用来定义存方法的变量。委托和类一样,是一种用户自定义类型。但类表示的是数据和方法的集合,而委托表示的是一个或多个方法的集合。你可以把delegate看作一个包含有序方法列表的对象,这些方法具有相同的签名和返回类型

    2,声明委托类型

    委托类型不需要在类内部声明,因为它是类型声明

    3,委托对象的创建和赋值

      

        delegate void MyDel(string value);
        class Program
        {
            void Print1(string value)
            {
                Console.WriteLine("方法1:{0}", value);
            }
            void Print2(string value)
            {
                Console.WriteLine("方法2:{0}", value);
            }
            void Print3(string value)
            {
                Console.WriteLine("方法3:{0}", value);
            }
            /// <summary>
            /// 执行委托方法
            /// </summary>
            /// <param name="d">委托类型参数</param>
            /// <param name="value">委托内方法的参数</param>
            void PrintFun(MyDel d, string value)
            {
                d(value);
            }
            static void Main(string[] args)
            {
                Program p = new Program();
                MyDel del1, del2, del3;//声明委托变量
    
                //赋值
                del1 = p.Print1;
                del2 = p.Print2;
    
                //组合委托
                del3 = del1 + del2;
    
    
                //给委托赋新值
                del1 = p.Print2;
    
    
                //给委托添加方法
                del1 += p.Print3;
    
    
                //从委托移除方法
                del1 -= p.Print2;
    
                p.PrintFun(del1, "已运行");//调用
    
    
                Console.WriteLine("
    运行组合委托");
                p.PrintFun(del3, "已运行");
                Console.ReadKey();
            }
        }
  • 相关阅读:
    Django框架13 /缓存、信号、django的读写分离
    linux09 /消息队列、saltstack工具
    会话管理之AbpSession
    ABP之事件总线(5)
    依赖注入容器之Castle Windsor
    ABP之事件总线(4)
    ABP之事件总线(3)
    ABP之事件总线(2)
    ABP之事件总线(1)
    ABP之展现层(Datatables分页)
  • 原文地址:https://www.cnblogs.com/yangwang365/p/10026193.html
Copyright © 2011-2022 走看看