C#中的委托实现租房
来源:互联网 发布:游戏优化器哪个最好用 编辑:程序博客网 时间:2024/05/03 19:50
//House类
public class House
{
public HouseType RoomType { get; set; }
public double Rent { get; set; }
public House(HouseType houseType, double rent)
{
this.RoomType = houseType;
this.Rent = rent;
}
}
// HouseType类
public enum HouseType
{
OneBedroom,TwoBedroom,ThreeBedroom,FourBedroom
}
第一步:定义委托类型
Agency类
//1.定义委托类型
public delegate void LetAgencyToFindHouse(HouseType houseType, double rent);
public class Agency
{
public string Name { get; set; }
private List<House> houselist = new List<House>();
public Agency(string name)
{
this.Name = name;
House h1 = new House(HouseType.OneBedroom, 500);
House h2 = new House(HouseType.TwoBedroom, 700);
House h3 = new House(HouseType.ThreeBedroom, 1000);
House h4 = new House(HouseType.FourBedroom, 1500);
this.houselist.Add(h1);
this.houselist.Add(h2);
this.houselist.Add(h3);
this.houselist.Add(h4);
}
public void FindHouse(HouseType hopeType,double hopeRent)
{
Console.WriteLine("\n中介{0}开始找房子...",this .Name);
House result = null;
foreach (House h in this.houselist)
{
if (h.RoomType == hopeType && h.Rent<= hopeRent)
{
result = h;
}
}
if (result == null)
{
Console.WriteLine("\n对不起!暂时没有你想要的房源!");
}
else
{
Console.WriteLine("\n找到了你期望的房子:类型:{0},月租金为:{1}",result.RoomType,result.Rent);
}
}
}
第二步:定义委托对象
Customer类
public class Customer
{
//2.定义委托对象
public LetAgencyToFindHouse agencyDelegate;
public string Name { get; set; }
public HouseType RoomType { get; set; }
public double Rent { get; set; }
public void ToRentHouse()
{
Console.WriteLine("\n顾客{0}说,我要找一个{1}类型,月租金不高于{2}元的房子!",this.Name,this.RoomType ,this.Rent);
// 4.调用委托
agencyDelegate(this.RoomType, this.Rent);
}
}
第三步:把与委托有相同方法签名的方法绑定到对象上
程序入口Main方法
class Program
{
static void Main(string[] args)
{
Customer jayChou = new Customer();
jayChou.Name = "周杰伦";
jayChou.RoomType = HouseType.FourBedroom;
jayChou.Rent = 1000;
Agency one = new Agency("我爱我家");
Agency two = new Agency("北大方正");
// 3.把方法绑定到委托上
jayChou.agencyDelegate = new LetAgencyToFindHouse(one.FindHouse);
jayChou.agencyDelegate += new LetAgencyToFindHouse(two.FindHouse);
jayChou.ToRentHouse();
Console.WriteLine("\n第一家中介公司态度不好!我只要第二家帮我找...我可以出高点价格!");
jayChou.Rent = 2000;
jayChou.agencyDelegate -= new LetAgencyToFindHouse(one.FindHouse);
jayChou.ToRentHouse();
Console.ReadLine();
}
}
第四步:调用委托
- C#中的委托实现租房
- 如何在C#中的委托实现
- C#中的委托
- C# 中的委托
- C#中的委托
- c#中的委托!!!!
- c#中的委托
- [原创]c#中的委托
- 浅析C#中的委托
- C# 中的委托
- c#中的委托
- C#中的委托数组
- C#中的委托
- C#中的委托
- C#中的委托
- C# 中的委托类
- C# 中的委托
- C#中的委托,事件
- 浅析ID与CLASS的区别
- Java基础加强和JDK1.5新特性1.0
- WPF架构关键技术剖析(3)--做自己的交互Action(2)
- 2011版C++面试宝典!(值得收藏)
- 你会做Web上的用户登录功能吗?
- C#中的委托实现租房
- printk打印加入系统流逝时间
- How To Read and Write XML Documents with GDataXML
- 利用MyEclipse创建hibernate视图的hbm.xml文件及其手动设置事项
- 错误代码中文查询GetLastError返回代码的含义
- Error creating bean with name 'sessionFactory' defined in class path resource [applicationC
- 红黑树
- 我的第一篇博客 谨献给我已逝去的高三
- hibernate批量插入数据,MySQL提示:1040-Too many connections