【C#基础】委托

定义:委托是引用类型,将方法作为参数传递到另一个方法
声明:delegate 返回类型 委托名(参数)

例:
1.委托

//声明委托,返回类型为int,并且有两个参数
public delegate int GetSum(int a, int b);

public static int Sum(int a,int b) 
{
	return a + b;
}

static void Main(string[] args)
{
	GetSum getSum = Sum;	//将方法Sum传递到委托GetSum
	//GetSum getSum = delegate (int a, int b) { return a + b; };	//匿名委托
	//GetSum getSum = (int a, int b) => { return a + b; };	//lambda表达式
	Console.WriteLine(getSum(1, 2));
}

2.C#已声明好的委托,System.Func和System.Action,其中func为有返回值,Action为无返回值

static void Main(string[] args)
{
	Func<int, int, int> func = Sum;	//指向有返回值的方法
	Console.WriteLine(func(1, 2));
	
	Action<int> action = Test;	//指向无返回值的方法
	action(1);
}
public static void Test(int a) 
{
	Console.WriteLine(a);
}

3.多播委托
定义:在一个委托中注册多个方法,用加减号实现添加或撤销

public delegate void Buy();	//声明购物委托

public static void BuyWater()
{
	Console.WriteLine("水");
}

public static void BuyFruits()
{
	 Console.WriteLine("水果");
}

public static void BuyVegetable()
{
	Console.WriteLine("蔬菜");
}

static void Main(string[] args)
{
	Buy buy = BuyWater;	//买水
	buy += BuyFruits;	//买买水果
	buy += BuyVegetable;	//买蔬菜
	buy -= BuyWater;	//撤销买水
	
	buy();
	
	Console.ReadKey();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值