Event 与 Delegate的区别,还是有区别的
2014-09-08 15:27
477 查看
1. event就是delegate的一种应用,加上event的delegate能做的事情,与单纯delegate都能做到。
2. 加了event的delegate变量就当是它给外面的世界只显示了两个东西:+=、-=。
外面的世界既不能对他赋值(=操作),也不能调用它(myDelegate())。
举个实例如下:
publikc class Test
{
public delegate void MyEventHandler(object sender, EventArg e);
public event MyEventHandler myEvent;
public MyEventHandler myDelegate;
public void F1(object sender, EventArg e){}
public void F2(object sender, EventArg e){}
}
public class App1
{
void Main()
{
Test t1 = new Test();
t1.myEvent += new MyEventHandler(t1.F1); //Correct
t1.myDelegate +=new MyEventHandler(t1.F1); //Correct
t1.myEvent(); //Wrong
t1.myDelegate(); //Correct
t1.myEvent = new MyEventHandler(t1.F1); //Wrong
t1.myDelegate = new MyEventHandler(t1.F1); //Correct
}
}
2. 加了event的delegate变量就当是它给外面的世界只显示了两个东西:+=、-=。
外面的世界既不能对他赋值(=操作),也不能调用它(myDelegate())。
举个实例如下:
publikc class Test
{
public delegate void MyEventHandler(object sender, EventArg e);
public event MyEventHandler myEvent;
public MyEventHandler myDelegate;
public void F1(object sender, EventArg e){}
public void F2(object sender, EventArg e){}
}
public class App1
{
void Main()
{
Test t1 = new Test();
t1.myEvent += new MyEventHandler(t1.F1); //Correct
t1.myDelegate +=new MyEventHandler(t1.F1); //Correct
t1.myEvent(); //Wrong
t1.myDelegate(); //Correct
t1.myEvent = new MyEventHandler(t1.F1); //Wrong
t1.myDelegate = new MyEventHandler(t1.F1); //Correct
}
}
相关文章推荐
- delegate和event的区别
- delegate和event的区别
- C#中delegate和event的区别(根据unity官方指南)
- C#中Delegate和Event以及它们的区别
- C#event 与 delegate的区别
- Delegate成员变量和Event的区别
- 在使用delegate时,使用event 与不使用的区别
- c#中delegate和event之间的区别
- event与delegate的区别
- Delegate与Event的区别[转]
- 重温C#2.0之委托(delegate,Delegate,MulticastDelegate)与事件(event)区别
- event与delegate的区别
- c#中delegate和event之间的区别
- delegate和Event区别
- delegate与event的区别
- delegate和event的区别
- WPF--event、delegate、EventHandler、RoutedEventHandler的区别
- C#知识点总结系列:3、C#中Delegate和Event以及它们的区别
- .NET 里delegate和event的区别
- CSharp Tips:Delegate成员变量和Event的区别