1、习惯叫法不同,习惯上比较喜欢叫XX事件,比例按钮事件,键盘事件,没有叫按钮委托,TextChanged委托的吧 2、第二点是刚刚发现的,定义了委托和事件 public delegate void TestDelegate(); public TestDelegate MyDelegate; public event TestDelegate MyEvent;当输入My时出现的智能提示框前面的小图标不一样,委托的小图标是蓝色方块,事件的小图标是黄色闪电3、第三点正是由第二点才联想到,代码如下: public partial class UserControl1 : UserControl { public delegate void TestDelegate(); public TestDelegate MyDelegate; public event TestDelegate MyEvent; public UserControl1() { InitializeComponent(); } } 然后在窗体上加上这个用户控件,在属性事件栏只有MyEvent没有MyDelegate
上面我说的“委托”就是指声明为delegate而没有用关键字event来标记的那些委托,而不是指事件不是委托。显然编译器设计者可以对事件做许多自动生成代码和语法检查的工作,可以集20年来微软在windows事件驱动机制(实际上从windows之前,从vb1.0 for dos就开始使用事件驱动来处理鼠标和字符光标了)上的所有规范,而委托只是一个比较低级的原则。
事实上作为数据类型来讲,委托类型也可以使用get,set属性访问器来限定啊
2、第二点是刚刚发现的,定义了委托和事件
public delegate void TestDelegate();
public TestDelegate MyDelegate;
public event TestDelegate MyEvent;当输入My时出现的智能提示框前面的小图标不一样,委托的小图标是蓝色方块,事件的小图标是黄色闪电3、第三点正是由第二点才联想到,代码如下: public partial class UserControl1 : UserControl
{
public delegate void TestDelegate();
public TestDelegate MyDelegate;
public event TestDelegate MyEvent; public UserControl1()
{
InitializeComponent();
}
}
然后在窗体上加上这个用户控件,在属性事件栏只有MyEvent没有MyDelegate
所谓“使用get,set属性访问器来限定”不是还要你写代码嘛,而不是声明给编译器。何况,“get,set”也起不了什么作用。比如用户可以轻易给一个委托赋值null,而对事件这样操作则编译器会给出编译异常。
就不能给事件赋null了么?