C#基础之委托

因为委托也是面试常常问道的问题,分享一下我的理解。为什么使用委托。

  • 1、为什么使用委托?
    日常生活中,例如叫外卖,这里外卖小哥就是委托。
    还有像电视剧里面 家人去监狱里面探监,有东西会请狱警交给罪犯,这里狱警就是委托。
    从中可以得出委托是一个类,,因为只有类才有对象的概念,从而也体现了C#是面向对象的语言
  • 2、委托的使用
delegate void Mydelegate();//定义委托
Mydelegate md;//声明委托
md=new Mydelegate(Obj.Method);//委托的实例化
MyMethod(d);//把参数传递给方法(委托把方法当做参数传到另一个方法)
  • 3、委托的实际应用
    委托的实际应用,我用到了我的笔记《Socket通讯备忘录》,
    在里面因为.net的安全机制,控件不能跨线程调用,因此我使用了委托,将需要显示的参数,传递给控件。
//定义委托
 public delegate void DelegateShow(string msg);
 //声明和实例化委托,并且将方法  chatContentShow  当做对象传递给控件的 Invoke方法
 DelegateShow @delegate = new DelegateShow(chatContentShow);
 //控件使用委托的方法,并且传递参数
 chatContent.Invoke(@delegate, msg);
 //控件在方法内显示
 private void ContextShow()
        {
            chatContent.AppendText("客户端连接成功"+ ClientInfo+ "\r\n");
        }

实例2
定时器这个也是一个委托

public System.Timers.Timer Nowtimer = new System.Timers.Timer(1000);
 ///当前时刻定时器
            this.Nowtimer.AutoReset = true;
            Nowtimer.Elapsed += new System.Timers.ElapsedEventHandler(Nowtimer_Elapsed);
            Nowtimer.Start();
      private void Nowtimer_Elapsed(object sender, ElapsedEventArgs e)
        {
            this.Nowtimer.Stop();
            string m_text =  DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            TimeSpan ts = DateTime.Now.Subtract(SysLoadDT);
            this.SetNowTimeHint(ts.Days.ToString() + " Days " + ts.Hours.ToString() + ":" + ts.Minutes.ToString() + ":" + ts.Seconds.ToString());
            this.Nowtimer.Start();

        }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值