请教重载事件参数类的构造函数问题 定义了一个代理,一个事件参数类,四个事件都使用这个代理和参数类,四个事件使用参数类中不同的属性,如何根据参数类的构造函数(重载了四次)让四个事件只能访问自己相关的属性呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 自定义事件类继承EventArgs定义4个构造函数。然后在调用的时候参数各不相同就可以了exp: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)); 我现在就是这样做的,但是i,a,flag对三个事件都是可见的,想做成对应i这个事件那么a,flag这两个属性就不可见,比如e.i就行了,没有e.a和e.flag,这样行吗? 就是一楼那样了 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#动态创建button,如果显示在窗体上 UDP为何不能传送大文件 如何解析xml数据岛的javascript? 怎样快速定位到我用XML注释的函数 用C# 环境,怎么能得到SSIS运行的日志阿?在线等!!急切!! asp.net与c#是怎么样的关系 关于TEXTBOX 请问我在DataSet中增加或修改了数据,我要把增加或修改的数据存放到数据库中,应该怎么样做? 如何打包.net 2.0的框架使安装过程不会显示.net2.0框架的界面 对TextBox输入的控制! C#中的索引器 如何取得鼠标在某控件内的坐标?
定义4个构造函数。
然后在调用的时候参数各不相同就可以了
exp: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));
想做成对应i这个事件那么a,flag这两个属性就不可见,比如
e.i就行了,没有e.a和e.flag,这样行吗?
{//事件触发方法
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));