事件代理方法如何实现?具体问题见内详述 比如我的程序里有一个静态BOOL型变量,当这个BOOL型变量状态改变时程序自动去调用一个方法。这个BOOL型变量状态改变时间不固定。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //写成属性。private bool _isChanged = false;public event Action<bool> StateChanged;public bool IsChanged{ get { return _isChanged; } set { _isChanged = value; if(StateChanged != null) StateChanged(value); }} 然后注册xxxx.StateChanged += ..... public delegate void MyEventHandler(object source, MyEventArgs e); public class MyEventArgs : EventArgs { private string EventInfo; public MyEventArgs(string Text) { EventInfo = Text; } public string GetInfo() { return EventInfo; } } public class MyClass { public event MyEventHandler OnMaximum; private int i; private int Maximum = 10; public int MyValue { get { return i; } set {if(value <= Maximum) { i = value; } else { if(OnMaximum != null) { OnMaximum(this, new MyEventArgs(value.ToString()); } } } } } class Program { static void MaximumReached(object source, MyEventArgs e) { Console.WriteLine(e.GetInfo()); } static void Main(string[] args) { MyClass MyObject = new MyClass(); MyObject.OnMaximum += new MyEventHandler(MaximumReached); for(int x = 0; x <= 15; x++) { MyObject.MyValue = x; } Console.ReadLine(); } } 如果想简单的话public bool IsChanged{ get { return _isChanged; } set { _isChanged = value; if(StateChanged != null) StateChanged(value); 这里直接调用你的方法就可以了 }}正则给你使用了事件,是基于假如你现在不知道 bool 变化之后,你将具体怎么操作,那么你就用事件 FCKeditors+ckfinder 上传图片预览 英文 内容修改 c#中tcp应用编程,连接超时,如时设置超过一定时间就抛出异常 统计datagridview行数 急,问一下下载文件后如何打开 主函数的String[] args参数有什么作用呢? 关于同名抽象类 如何实现站内消息自动通知 to 愚翁,看完你的文章,请教关于登陆窗体与主窗体数据传递的问题。 【急】使用webBrowser遇到问题 C#lable循环的问题 挺急得 都进来看看 怎样在一个exe文件中调用另一个exe文件并传入参数? 最菜鸟的问题
//写成属性。
private bool _isChanged = false;
public event Action<bool> StateChanged;
public bool IsChanged
{
get
{
return _isChanged;
}
set
{
_isChanged = value;
if(StateChanged != null) StateChanged(value);
}
}
public class MyEventArgs : EventArgs
{
private string EventInfo;
public MyEventArgs(string Text) { EventInfo = Text; }
public string GetInfo() { return EventInfo; } }
public class MyClass
{
public event MyEventHandler OnMaximum;
private int i;
private int Maximum = 10;
public int MyValue
{ get { return i; }
set {if(value <= Maximum) { i = value; }
else {
if(OnMaximum != null) {
OnMaximum(this, new MyEventArgs(value.ToString());
}
}
}
}
}
class Program {
static void MaximumReached(object source, MyEventArgs e) {
Console.WriteLine(e.GetInfo()); }
static void Main(string[] args) {
MyClass MyObject = new MyClass();
MyObject.OnMaximum += new MyEventHandler(MaximumReached);
for(int x = 0; x <= 15; x++) {
MyObject.MyValue = x; }
Console.ReadLine();
}
}
public bool IsChanged
{
get
{
return _isChanged;
}
set
{
_isChanged = value;
if(StateChanged != null) StateChanged(value);
这里直接调用你的方法就可以了
}
}正则给你使用了事件,是基于假如你现在不知道 bool 变化之后,你将具体怎么操作,那么你就用事件