C#委托防止事件多次注册

示例代码如下:

 1 class  NodeInf
 2 {
 3         public delegate void mydelegate(ProcessContent processContent);
 4         private   mydelegate myevent;
 5 
 6         public event mydelegate mydelegateEvent
 7         {
 8             add 
 9             {
10                 if (myevent == null)
11                 {
12                     myevent  +=value;
13                 }
14             }
15 
16             remove
17             {
18                 myevent -= value;
19             }
20         
21         }
22 
23       private void button1_Click(object sender, EventArgs e)
24       {
25           
26             if (myevent != null && Edit==false)
27             {
28                 ProcessContent content = new ProcessTable.ProcessContent();
29                 myevent(content);
30             }
31 
32       }
33 
34 
35     
36 
37 }
38 
39 
40 
41 class B
42 {
43 
44          void addNode(ProcessContent Content)
45         {
46               //dosomething
47 
48         }
49         
50        private void button2_Click(object sender, EventArgs e)
51       {
52                 NodeInf nodeinf = new NodeInf(pContent);
53                 nodeinf.mydelegateEvent += new NodeInf.mydelegate(addNode);
54 
55       }
56 
57 
58 
59 }
原文地址:https://www.cnblogs.com/hosseini/p/7928453.html