码迷,mamicode.com
首页 > Windows程序 > 详细

C#中的委托,个人理解

时间:2019-03-15 19:14:40      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:delegate   支付   不同   reading   有一个   span   linq   电话费   sys   

相当于Java中的interface 定义的接口,但是  比Java中的interface要好

 

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


namespace ADONetDome
{

    public delegate void UserC(int i);   
    //可以理解为java中的interface 接口,但是委托中不需要去实现,会自动找见相对应类的匹配的方法.又和重载相似,但是方法名不同
    public class UserA 
    {
        public UserC userC;    

        public UserA(){
            userC = null;
        }
        /// <summary>
        /// 去交电费,委托C去找个人给我交电话费
        /// </summary>
        public void PayTel(String name,int money){  
            Console.WriteLine("我是UserC:"+name+"托我去替他交电话费,交"+money+"");
            userC(money);
        }
        

    }

    public class UserB{
        
        public void goPayOther(int money)
        {
            Console.WriteLine("我是UserB:   发现有人让我去交话费,他给了我钱. 好!!!我去交" + money + "元,发现交给其他人了");
        }
        public void goPayTel(int money)
        {
            Console.WriteLine("我是UserB:   发现有人让我去交话费,他给了我钱. 好!!!我去交" + money + "");
        }
    }
}

调用

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


namespace ADONetDome
{
    class Program
    {
        static void Main(string[] args)
        {
            UserA A = new UserA();  //有一个对象A人
            
            UserB B = new UserB();  //有一个对象B人
            //现在A想让B去交电话费,可是找不见这个人,但是B知道C对象,和他很熟,A和C也很熟  A中有C,不需要创建   然后让C调B中支付的方法
            A.userC = B.goPayTel;       //A 委托C 去调用C的支付方法,替我交话费    A对象中没有B 对象, C中也没有B对象  ,java中interface中就不一样了,必须需要去实现类实现其中的方法  
            Console.WriteLine("我是UserA,叫张三,我需要B给我交电话费,需要委托UserC给说一下,把钱给UsreC");
            A.PayTel("张三",400);


            Console.WriteLine("Hello World!");
        }
    }
}

 

C#中的委托,个人理解

标签:delegate   支付   不同   reading   有一个   span   linq   电话费   sys   

原文地址:https://www.cnblogs.com/han-guang-xue/p/10538851.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!