zoukankan      html  css  js  c++  java
  • C#委托

    C#委托
    一:委托的实质:
    委托可以理解为是函数的一个包装,他可以上c#里面的函数当做参数来传递,相当于C++里面的函数指针,C++通过函数指针来获取函数的入口地址,然后通过指针去操作函数。
    委托的实质是一个类。
    二:委托的使用
    委托的定义就是在函数前面添加一个delegate关键字。
    public delegate void MyDelegate(type argv1,type argv2,..)
    委托和被委托的方法必须一样的地方
    1.返回值必须相同
    2.参数的个数,类型和顺序必须相同

    using System;
    using System.Collections.Generic;
    
    namespace MyDelegate
    {
        internal class Program
        {
            public delegate void delegateGreeting(string name); //定义委托变量
    
            public static void Main(string[] args)
            {
                delegateGreeting d = new Program().AmricamanGreeting; //声明委托变量并且实例化委托
                new Program().Greeting("mojinyang", d); //作为参数传递委托
    
                Console.WriteLine("-------------------------");
                delegateGreeting d1 = null;
                //可以使用+=和-=来形成一个委托链
                d1 += new Program().AmricamanGreeting;
                d1 += new Program().ChineseGreeting;
                new Program().Greeting("mojinyang", d1);
            }
    
            public void Greeting(string name, delegateGreeting callback)
            {
                callback(name); //调用委托
            }
    
            public void AmricamanGreeting(string name)
            {
                Console.WriteLine("Hello " + name);
            }
    
            public void ChineseGreeting(string name)
            {
                Console.WriteLine("你好, " + name);
            }
        }
    }

    使用委托的顺序是:定义委托类型->声明委托变量->实例化委托->作为参数传递给方法->调用委托

  • 相关阅读:
    C++ Tr1中的正則表達式
    html中#include file的使用方法
    InstallShield12豪华版破解版下载|InstallShield下载|软件打包工具
    linux-多线程
    使用 ArcGIS Online和APP进行监控操作和数据采集
    西藏印象:时光篇
    西藏印象:夜色篇
    西藏印象:蓝白篇
    hex2bin
    使用openssl的aes各种加密算法
  • 原文地址:https://www.cnblogs.com/kanekiken/p/7560958.html
Copyright © 2011-2022 走看看