事 件

事件

关键字:event
声明语法:访问修饰符 event 委托类型 事件名

作用

防止外部随意置空委托
防止外部随意调用委托
事件相当于对委托进行一次封装 让委托更加安全

注意

事件不能在 类外部 赋值
事件不能在 类外部 调用
事件不能作为临时变量在函数中使用
事件只能作为类、接口、结构体成员
只能使用+=添加事件中的函数
-=去除事件中的函数
解决方法:在类内部封装一个公有方法 调用事件

例子

class TestEvent
{
    public delegate void Testevent();
    public Testevent del;//委托变量 
    //事件声明语法
    //访问修饰符 event 委托类型 事件名              
    public event Testevent Tev;//事件变量
    public event Action Te;
    public TestEvent()//构造函数
    {
        del = Test;//委托
        //事件和委托的使用方法一样
        //区别:事件不能在类外部 赋值
        //事件不能在类外部 调用
        Te = Test;//事件
        Te += Test;
        Te -= Test;
        Te();
        Te.Invoke();
        Te=null;
    }
    private void Test()
    {
        Console.WriteLine("委托和事件");
    }  
}
class Program
{
    static void Main(string[] args)
    {
        TestEvent test = new TestEvent();
        test.del.Invoke();//使用委托
        test.del = null;//委托赋值
        //test.Te = null; //事件不能在 类外部 赋值
        //test.Te = test.Te + Et;
        // test.Te();//事件不能在 类外部 调用
        //事件不能作为临时变量在函数中使用
        //event Action Ev; 
    }
    static void Et()
    {
        Console.WriteLine("测试");
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值