日期:2014-05-17 浏览次数:20904 次
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//事件
//1、 用.NET事件机制模拟彩票摇奖。要求:
//(1) 事件生产者:Ticket。
// 成员字段:第几期彩票
//当产生幸运号码时,通知彩民。其中,幸运号码为[10,16]之间的整数。
//(2)事件消费者:Customer
// 两个方法:买彩票的方法,及对中奖后的事件处理方法。
//(3)事件参数类
// 成员字段:幸运号码
namespace Test4
{
public class TicketEventArgs:EventArgs
{//事件参数类
public int Num{get;set;}
public TicketEventArgs(int num)
{
Num = num;
}
}
public delegate void TicketEventHandler(object source,TicketEventArgs args);//声明事件处理委托
public class Ticket
{//事件生产者:定义一个随机产生号码的事件,如果号码在[10,16]区间上,就交给事件消费者处理
Random ra = new Random();
public event TicketEventHandler ticketEvent;//在事件生产者中声明事件
public void TicketNumTof()
{
int te;
for (int i = 0; i < 35; i++)
{
te = ra.Next(1, 35);
if ((te>=10) && (te<=16))
{//如果产生的数字在区间[10,16]上就开始封装数据
TicketEventArgs args = new TicketEventArgs(i);//封装数据
if (ticketEvent != null)
{//如果事件消费者不为空,交给事件消费者处理
ticketEvent(this, args);
}
}
}
}
}
public class Customer
{//事件消费者
public static void handleEvent(object source, TicketEventArgs args)
{
&