日期:2014-05-17  浏览次数:20826 次

一个关于.net事件处理的程序,能运行,结果不对,帮忙看一下
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)
        {
           &