c# 委托实例

 
  
 class Program
    {
        static void HandleDemoEvent(object sender, EventArgs e)
        {
            Console.WriteLine("Handled by HandleDemoEvent");
        }
        static void Main(string[] args)
        {
            Console.WriteLine("c#1 委托示例");
            Person jon = new Person("Jon");
            Person tom = new Person("Tom");
            StringProcessor josVoice, tomsVoice, background;
            //创建3个委托实例
            josVoice = new StringProcessor(jon.Say);
            tomsVoice = new StringProcessor(tom.Say);
            background = new StringProcessor(Background.Note);

            josVoice("Hello,Lichuan");
            tomsVoice.Invoke("Hello,Doddy!");
            background("An airplane flies past.");



            Console.WriteLine("c#2 委托示例");
            EventHandler handler;
            handler = new EventHandler(HandleDemoEvent);//指定委托类型和方法
            handler(null, EventArgs.Empty);

            handler = HandleDemoEvent;//隐式转换成委托实例
            handler(null, EventArgs.Empty);

            handler = delegate(object sender, EventArgs e)//用一个匿名方法来指定操作
            {
                Console.WriteLine("Handled anonymously");
            };
            handler(null, EventArgs.Empty);

            handler = delegate         //使用匿名方法的简写
            {
                Console.WriteLine("Handled anonymously again");
            };
            handler(null, EventArgs.Empty);





            Console.ReadKey();
        }
    }
 
  

 

using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SRLJCSHAP.委托.Demo
{
    delegate void StringProcessor(string input);//声明委托类型
    public class Person
    {
        string name;
        public Person(string Name)
        {
            this.name = Name;
        }
        //声明兼容的实例方法
        public void Say(string Msg)
        {
            Console.WriteLine("{0} says: {1}", name, Msg);
        }


    }
    public class Background
    {
        //声明兼容的静态方法
        public static void Note(string note)
        {
            Console.WriteLine("({0})", note);
        }

       
    }
}

 

转载于:https://www.cnblogs.com/liuruitao/p/4289790.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值