请各位大侠指教C#中事件问题,小弟在线等!
using System;
public delegate void AgeChangeHandler(int age, object obj, ref bool b);
class Test
{
               //在C#中可以用事件触发器声明对象吗?
     public event AgeChangeHandler AgeChange;
     int iAge;
     public int Age
     {
         set
         {
             Boolean dontdoit = false;
             //这句话什么意思?
             AgeChange(value, this, ref dontdoit);
             if (!dontdoit)
                 iAge = value;
         }
         get
         {
             return iAge;
         }
     }
     public Test()
     {
         iAge = 0;
     }
}
class Test1
{
     //这个函数是普通函数?
     private static void MyAgeChangeHandler(int age, Object obj, ref bool dontdoit)
    {
        Console.WriteLine("age{0},obj.age = {1}", age, ((Test)obj).Age);
        if (age < 0 || age > 99)
            dontdoit = true;
    }    public static void Main()
     {
         Test p = new Test();
         //为什么能用触发器new出对象,参数中给MyAgeChangeHandler什么意思?
         p.AgeChange += new AgeChangeHandler(MyAgeChangeHandler);
         p.Age = 21;
         p.Age = 33;
         Console.ReadLine();
     }
}
------解决方案--------------------C#中的事件和委托关系密切问题,以你的code为例:
AgeChangeHandler是委托, AgeChange是事件,通过
p.AgeChange   +=   new   AgeChangeHandler(MyAgeChangeHandler);  
这里的new不是创建对象,可以理解为建立联系,将p对象AgeChange事件的处理要委托给类以外的方法MyAgeChangeHandler。
------解决方案--------------------1、AgeChange(value,   this,   ref   dontdoit);  
当委托与方法关联时,调用关联的方法(实际上是方法指针)
2、 private   static   void   MyAgeChangeHandler(int   age,   Object   obj,   ref   bool   dontdoit)  
       {  
               Console.WriteLine( "age{0},obj.age   =   {1} ",   age,   ((Test)obj).Age);  
               if   (age   <   0   ¦ ¦   age   >   99)  
                       dontdoit   =   true;  
       }        
就是一个普通方法;
3、 p.AgeChange   +=   new   AgeChangeHandler(MyAgeChangeHandler);  
p.AgeChange相当于是一个指针链表,此处表示把MyAgeChangeHandler方法指针添加到链表中去
------解决方案--------------------AgeChangeHandler 是委托
AgeChange 是事件
MyAgeChangeHandler 是方法
Test1对象通过MyAgeChangeHandler方法将AgeChange事件委托给Test来处理
哈哈:)可以这样来解释吧:)