public delegate void yin(int s);
public event yin intants;
另外一段代码给intants赋值后, 运行函数intants(4),这个event不要好像也可以,要和不要有什么区别呢?
---------------------------------------------------------------------------------------------------
1.event这个关键字会把一般的委托转换为具有Add和Remove方法的持殊委托属性;
2.event关键字,限定了外界对委托变量只能使用+=或-=操作符,从而限定外界的非法赋值和调用;
3.有event关键字标识的委托,一般情况下的返回值类型都是void(当前这非硬性规定);
4.event对象在拥有该对象的类内部可以把它当成和delegate一样的东西
只有在类外部使用这个event的时候才有所不同 只能使用它的+=和-=这两个运算符 不能使用任何方法去执行这个event的处理函数
简单来说event关键字把delegate原本的invoke函数 和函数式的括号调用 都变成它的拥有类的私有函数 外部任何类都不能直接通过invoke或者括号传参等方式调用这个event的处理函数
而delegate 无论它的拥有着还是其他任何类 都有全部的访问权限+= -=这些当然能用,直接invoke或者括号传参也能直接执行处理函数。