求助一下!这个泛型委托是咋回事?

qqq989233 2009-08-17 05:41:05
private event EventHandler<cCheckStartedEventArgs> e_CheckStarted;
public event EventHandler<cCheckStartedEventArgs> CheckStarted//这个定义看不懂
{
add { lock (m_eventLock) { e_CheckStarted += value; } }//这个定义看不懂
remove { lock (m_eventLock) { e_CheckStarted -= value; } }//这个定义看不懂
}



谢谢!
...全文
138 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
guohouchang 2009-08-19
  • 打赏
  • 举报
回复
刚入门吗?如果是新手 建议不要深究委托和事件。。。

知道怎么做,什么时候用就好了。。刚开始的时候,这个是非常难以理解..

时间长了你自然就理解了
qqq989233 2009-08-19
  • 打赏
  • 举报
回复
还有人吗?
NealXX 2009-08-18
  • 打赏
  • 举报
回复

private event EventHandler<cCheckStartedEventArgs> e_CheckStarted;
public event EventHandler<cCheckStartedEventArgs> CheckStarted//这个定义看不懂
{
add { lock (m_eventLock) { e_CheckStarted += value; } }//这个定义看不懂
remove { lock (m_eventLock) { e_CheckStarted -= value; } }//这个定义看不懂
}

这种写法不有点类似
private int _X;
private int x
{
get{;}
set{;}
}
public int X
{
get{;}
set{;}
}
qqq989233 2009-08-18
  • 打赏
  • 举报
回复
private event EventHandler<cCheckStartedEventArgs> e_CheckStarted;
public event EventHandler<cCheckStartedEventArgs> CheckStarted

这两个事件是什么关系呢?定义方式怎么不一样呢?是何用意呢?
jivi 2009-08-18
  • 打赏
  • 举报
回复
这是c#的语法。对于EVENT都是 add 和 remove
zhengqian529 2009-08-18
  • 打赏
  • 举报
回复
说不明白,反正就是事件委托,这么写就相当于支持:+=,-=操作。
robin521 2009-08-18
  • 打赏
  • 举报
回复
多播委托
ugg707 2009-08-17
  • 打赏
  • 举报
回复
留名关注了
龙宜坡 2009-08-17
  • 打赏
  • 举报
回复
知识点:泛型、委托、事件
微创社(MCC) 2009-08-17
  • 打赏
  • 举报
回复
private event EventHandler<cCheckStartedEventArgs> e_CheckStarted;
public event EventHandler<cCheckStartedEventArgs> CheckStarted
{
add { lock (m_eventLock) { e_CheckStarted += value; } }//这里有问题
remove { lock (m_eventLock) { e_CheckStarted -= value; } }
}

这里有问题,应该是:

private event EventHandler<cCheckStartedEventArgs> e_CheckStarted;
public event EventHandler<cCheckStartedEventArgs> CheckStarted//这个定义看不懂
{
add { lock (m_eventLock) { e_CheckStarted = value; } }//去掉"+"号
remove { lock (m_eventLock) { e_CheckStarted -= value; } }
}
qqq989233 2009-08-17
  • 打赏
  • 举报
回复
上下两个event 什么关系呢?
qqq989233 2009-08-17
  • 打赏
  • 举报
回复
在顶
边城的刀声 2009-08-17
  • 打赏
  • 举报
回复
推荐你看下《.net 框架》中关于委托事件的描述
边城的刀声 2009-08-17
  • 打赏
  • 举报
回复
private event EventHandler<cCheckStartedEventArgs> e_CheckStarted 定义了一个事件委托,然后基于此类型的委托可以定义多种事件,不光是有CheckStarted,也可以有CheckStarting
public event EventHandler<cCheckStartedEventArgs> CheckStarted定义了一个事件。
add { lock (m_eventLock) { e_CheckStarted += value; } }将你要注册到该事件上的方法放到委托链表上,以便事件触发时,通知你注册的方法
remove { lock (m_eventLock) { e_CheckStarted -= value; } }当事件发生后,也就是你的方法执行后,可以用这个从事件委托链表上删除你定义的方法 。以后事件再发生时,就不会再通知你删除了的注册方法了。
NealXX 2009-08-17
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20090323/07/518A3D98-7D2B-4B80-BA3F-8D4E047BA8BE.html
可以看下这个 很不错的
qqq989233 2009-08-17
  • 打赏
  • 举报
回复
自己顶
qqq989233 2009-08-17
  • 打赏
  • 举报
回复
具体一点好吗!最好能举个跟这一样的例子!要不我这菜鸟挺笨的!
NealXX 2009-08-17
  • 打赏
  • 举报
回复

private EventHandler<cCheckStartedEventArgs> e_CheckStarted;
public event EventHandler<cCheckStartedEventArgs> CheckStarted
{
add { lock (m_eventLock) { e_CheckStarted += value; } }
remove { lock (m_eventLock) { e_CheckStarted -= value; } }
}

这样就好了 ,事件本质是对一个多播委托的封装,跟属性类似
szzzp110 2009-08-17
  • 打赏
  • 举报
回复
正准备学了

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧