C#中的委托,个人理解
2021-06-12 00:04
标签:delegate 支付 不同 reading 有一个 span linq 电话费 sys 相当于Java中的interface 定义的接口,但是 比Java中的interface要好 调用 C#中的委托,个人理解 标签:delegate 支付 不同 reading 有一个 span linq 电话费 sys 原文地址:https://www.cnblogs.com/han-guang-xue/p/10538851.htmlusing 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;
}
///
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!");
}
}
}