using System;
using System.Data.SqlTypes;
namespace bDelegate
{
//创建委托类型
public delegate Apartment SearchApartmentEventHandle(float money, int area);
public class Apartment
{
private float money;
private int area;
private string finder;
public Apartment(float money, int area, string finder)
{
this.money = money;
this.area = area;
this.finder = finder;
}
public void ShowMe()
{
Console.WriteLine($"发现者:{finder},房子面积:{area}平方米,价格{money}万元");
}
}
public class Buyer
{
//用委托类型创建给委托对象
public SearchApartmentEventHandle searchApartmentEventHandle;
void Call()
{
if (searchApartmentEventHandle != null)
{
searchApartmentEventHandle(1,1);
}
}
}
public class Media
{
private string name;
private int probability;
public Media(string name,int probability)
{
this.probability = probability;
this.name = name;
}
public Apartment SearchApartment(float money,int area)
{
//找到房子的概率为 n%
int randomNumber = new Random().Next(1, 101);
if (randomNumber > probability)
{
return null;
}
int randomMoney = new Random().Next(1,(int)money);
int randomArea = new Random().Next(area,area + 10);
return new Apartment(randomMoney,randomArea,name);
}
}
public class ApartmentDemo
{
public static void Demo()
{
Buyer xiaoming = new Buyer();
Media lianjia = new Media("链家",80);
Media maitian = new Media("麦田",20);
//绑定委托
// xiaoming.searchApartmentEventHandle += lianjia.SearchApartment;
// xiaoming.searchApartmentEventHandle += maitian.SearchApartment;
while (true)
{
Apartment apartment = null;
if (xiaoming.searchApartmentEventHandle != null)
{
apartment = xiaoming.searchApartmentEventHandle(300,100);
}
if (apartment != null)
{
apartment.ShowMe();
}
else
{
Console.WriteLine("此次未找到合适的公寓...");
}
Console.ReadLine();
}
}
}
}
c#委托买房
最新推荐文章于 2021-08-08 17:06:21 发布