您的位置:程序门 -> .net技术 -> c#



关于类似事件委托的问题,大家帮忙看下啊


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


关于类似事件委托的问题,大家帮忙看下啊[已结贴,结贴人:kbxj406]
发表于:2007-02-02 17:10:15 楼主
想在一个类中,定义了一个变量,当改变量的值发生变化的时候,就触发某个指定的事件,即执行一段代码。


用事件委托可行不?可以的话,写几行代码先。

3q先
发表于:2007-02-02 17:14:121楼 得分:10
写下思路吧   用伪码写了
public   delegate   void   xxeventhandler;

class   {
public   event   xxeventhandler   onxx;
int   value;
int   oldvalue;
//最好用线程去跑这个while
while(true)
{
      if(value   !=   oldvalue)
      {
                oldvalue   ==   value;
                onxx(this,e);
      }
}
}
发表于:2007-02-02 17:14:442楼 得分:0
oldvalue   =   value;
多打一个=号
发表于:2007-02-02 17:29:323楼 得分:0
恩,和楼上想的差不多~
发表于:2007-02-02 17:37:354楼 得分:0
2楼的,当value值改变的时候,根据你的代码处罚那个事件函数??

不会是用线程一直去while里判断吧
发表于:2007-02-02 17:40:405楼 得分:0
改改就行了,在赋值的时候判断新值和旧值
发表于:2007-02-02 17:48:296楼 得分:0
谢谢大家,给搞几行代码
发表于:2007-02-03 06:36:087楼 得分:80
最好是把这些逻辑隐藏在property上,而不是变量。
用独立线成循环cpu消耗太大。

private   int   _val   =   0;

public   delegate   void   mycallback();
public   event   mycallback   onvaluechange;

...
public   int   value   {
        get   {   return   _val;   }
        set   {  
                    _val   =   value;
                    if   (_val   !=   value)   onvaluechange();
        }
}
发表于:2007-02-03 08:23:518楼 得分:5
同意楼上的说法,用while轮寻肯定是不行的,放在property中比较好。
发表于:2007-02-03 08:51:439楼 得分:0
帮lz顶
发表于:2007-02-03 10:33:1210楼 得分:0
用事件委托比较好!学习中!
发表于:2007-02-03 13:54:5111楼 得分:0
学习
发表于:2007-02-04 09:18:1712楼 得分:0
今早来了看了下,qqchen79(知秋一叶)   的方法先去试一下

谢谢
发表于:2007-02-04 13:01:2113楼 得分:5
恩   确实用属性很好,没想到   不错不错
发表于:2007-02-04 17:53:4214楼 得分:0
up


快速检索

最新资讯
热门点击