首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

请问重载事件参数类的构造函数有关问题

2011-12-30 
请教重载事件参数类的构造函数问题定义了一个代理,一个事件参数类,四个事件都使用这个代理和参数类,四个事

请教重载事件参数类的构造函数问题
定义了一个代理,一个事件参数类,四个事件都使用这个代理和参数类,四个事件使用参数类中不同的属性,如何根据参数类的构造函数(重载了四次)让四个事件只能访问自己相关的属性呢?

[解决办法]
自定义事件类继承EventArgs
定义4个构造函数。
然后在调用的时候参数各不相同就可以了
exp:

C# code
public class MyEventArgs : EventArgs    {        private int age;        private string name;        private bool sex;        public MyEventArgs (int age)        {            this.age=age;        }        public MyEventArgs (string name)        {this.name=name;}        public MyEventArgs (bool sex)        {this.sex=sex;}               public int Age        {  get{return this.age;}}        public string Name        {            get { return this.name; }        }        public bool Sex        {  get{return this.sex;} }    }//你在访问的时候直接用不用的参数,//委托定义为   public delegate void MyEventHandler(object sender, MyEventArgs e);//事件定义为public event MyEventHandler MyChanged;//定义一个ColorChanged事件        protected virtual void MyChanged(MyEventArgs e)        {//事件触发方法            if (MyChanged!= null)            {//判断事件是否为空                MyChanged(this, e);//触发事件            }        }//使用应该会的吧 int i=1;string a="test"; bool flag=false; MyChanged(new MyEventArgs(i)); MyChanged(new MyEventArgs(a)); MyChanged(new MyEventArgs(flag));
[解决办法]
就是一楼那样了
C# code
 protected virtual void MyChanged(MyEventArgs e)        {//事件触发方法            if (MyChanged!= null)            {//判断事件是否为空                MyChanged(this, e);//触发事件            }        }//使用应该会的吧 int i=1;string a="test"; bool flag=false; MyChanged(new MyEventArgs(i)); MyChanged(new MyEventArgs(a)); MyChanged(new MyEventArgs(flag)); 

热点排行