代码1:
using System;
namespace DelegateDemo
{
public class Secretary
{
public void BuyAirlineTicket(int count)
{
Console.WriteLine("购买{0}张飞机票。", count);
}
public void BookHotel(int star)
{
Console.WriteLine("订{0}星级酒店。", star);
}
public void BuyTripBag(string name)
{
Console.WriteLine("购买{0}牌旅行包。", name);
}
}
class Program
{
static void Main(string[] args)
{
Secretary sec = new Secretary();
Action<int> ctripAction= new Action<int>(sec.BuyAirlineTicket);
ctripAction(2);
ctripAction = new Action<int>(sec.BookHotel);
ctripAction(5);
Action<string> taobaoAction = new Action<string> (sec.BuyTripBag);
taobaoAction("航天");
}
}
}
代码2:
using System;
namespace DelegateDemo
{
public class Secretary
{
private int _count;
private int _star;
private string _name;
public Secretary(int count, int star, string name)
{
_count = count;
_star = star;
_name = name;
}
public void BuyAirlineTicket()
{
Console.WriteLine("购买{0}张飞机票。", _count);
}
public void BookHotel()
{
Console.WriteLine("订{0}星级酒店。", _star);
}
public void BuyTripBag()
{
Console.WriteLine("购买{0}牌旅行包。", _name);
}
}
class Program
{
static void Main(string[] args)
{
Secretary sec = new Secretary(2,5,"航天");
Action action = new Action(sec.BuyAirlineTicket);
action+= new Action(sec.BookHotel);
action+= new Action(sec.BuyTripBag);
action();
}
}
}
代码3:
using System;
namespace DelegateDemo
{
public class Secretary
{
public void BuyAirlineTicketAndBookHotel(int count,int star)
{
Console.WriteLine("购买{0}张飞机票,订{1}星级酒店。", count,star);
}
public string BuyTripBag(string name)
{
Console.WriteLine("购买{0}牌旅行包。", name);
return "购包成功!";
}
}
class Program
{
static void Main(string[] args)
{
Secretary sec = new Secretary();
Action<int,int> ctripAction = new Action<int,int>(sec.BuyAirlineTicketAndBookHotel);
ctripAction(2,5);
Func<string, string> taobaoFun = new Func<string, string>(sec.BuyTripBag);
Console.WriteLine(taobaoFun("航天"));
}
}
}