zoukankan      html  css  js  c++  java
  • asp.net 委托用法

    using System;
    
    namespace WeiTuo
    {
        public delegate void MakeGreeting(string name);
        class Program
        {
            public static void EnglishGreeting(string name)
            {
                Console.WriteLine("morning:"+ name);
            }
    
            public static void ChineseGreeting(string name)
            {
                Console.WriteLine("早上好:"+name);
            }
    
            public static void GreetPeople(string name, MakeGreeting makegreet)
            {
                makegreet(name);
            }
    
            static void Main(string[] args)
            {
                //GreetPeople("Dom",EnglishGreeting);
                //GreetPeople("于海涛",ChineseGreeting);
    
    
                //MakeGreeting delegate1, delegate2;
                //delegate1 = EnglishGreeting;
                //delegate2 = ChineseGreeting;
                //GreetPeople("Dom", delegate1);
                //GreetPeople("于海涛", delegate2);
    
    
                //将多个方法绑定到同一个委托
                //MakeGreeting delegate1;
                //delegate1 = EnglishGreeting;
                //delegate1 += ChineseGreeting;
                //GreetPeople("于海涛", delegate1);
    
                //通过委托直接调用方法
                //MakeGreeting delegate1;
                //delegate1 = EnglishGreeting;
                //delegate1 += ChineseGreeting;
                //delegate1("于海涛");
    
                //MakeGreeting delegate1 = new MakeGreeting(EnglishGreeting);
                //delegate1 += ChineseGreeting;
                //delegate1("于海涛");
    
                //取消对ChineseGreeting方法的绑定
                //delegate1 -= ChineseGreeting;
                //delegate1("Dom");
    
            }
        }
    }
    
    public delegate void WeiTuo2();
        public delegate void WeiTuo3(string str);
        class Program
        {
            static void Main(string[] args)
            {
    
                WeiTuo2 weituo = new WeiTuo2(ShuChu);
                weituo.Invoke();
    
                WeiTuo3 wt = new WeiTuo3(ShuChu);
                wt.Invoke("带参数");
    
                Console.ReadLine();
            }
    
            static void ShuChu(string str)
            {
                Console.WriteLine(str);
            }
    
            static void ShuChu()
            {
                Console.WriteLine("无参数");
            }
        }

    说的比较直白点,委托其实就是将方法作为方法的参数。

  • 相关阅读:
    C#将DataTable按固定个数拆分成多个表
    IDataRowPersistable
    使用临时表的示例
    2011 11 28 sql语句学习
    2010 11 30 DrawCurve GDI绘制曲线
    如何查看viewstate的内容
    const 和 readonly 的区别
    access insert 语法错误
    asp.net下载文件的常用方法大全
    【转】JS超强判断电话号码
  • 原文地址:https://www.cnblogs.com/webyu/p/2512509.html
Copyright © 2011-2022 走看看