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();
            }
        }
  • 相关阅读:
    在小米 三星 索尼 手机 :图标上显示数字
    HDU 1873 看病要排队
    简单的WINFORM窗口,体验WINFORM带来的快感
    java初探秘之推断输入的一串字符是否全为小写字母
    【Android 面试基础知识点整理】
    互联网+时代IT管理者的转型
    hdu 1233 还是畅通project (克鲁斯卡尔裸题)
    经验之谈—让你看明确block
    字典树
    设计模式之问题集锦(一)
  • 原文地址:https://www.cnblogs.com/yangwang365/p/10026193.html
Copyright © 2011-2022 走看看