C#: Delegate and Event

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Test.Other
{
    public class TestDelegateAndEvent
    {
        public delegate void TestDelegate();
        public event TestDelegate TestEventHandler;

        public void Test()
        {
            TestDelegate testDelegate = new TestDelegate(Test1);
            TestEventHandler += new TestDelegate(Test1);

            testDelegate();
            TestEventHandler();
        }
        public void Test1()
        {
        }
    }
}
TestDelegateAndEvent.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Test.Other
{
    class Program
    {
        //public static delegate void TestDelegate();
        //public static event TestDelegate TestEventHandler;
        static void Main(string[] args)
        {
            // Delegate can be triggered directly
            //TestDelegate testDelegate = new TestDelegate(Test);
            //testDelegate();


            //TestDelegateAndEvent test = new TestDelegateAndEvent();
            //test.TestEventHandler += Test;

            // Error: The delegate inner the class is private even if the type is public.
            // test.TestDelegate();

            // Error: Event can't be triggered directly.
            //test.TestEventHandler();

            Console.ReadLine();
        }

        public static void Test()
        {
            Console.WriteLine("test");
        }
    }
}
Program.cs


总结:

1. Delegate可以将方法作为另外一个方法的参数带入其中进行运算;

2. 实际上Delegate和Event都是类,Event是一种特殊类型的Delegate;

3. 类内的Delegate不能被对象调用,即便这个delegate是Public的;

4. delegate和event都重载了+=,-=, 但是delegate可以用=直接赋值,但是event不可以;

5. delegate和event都不能由对象直接触发;

6. delegate和event都不能是static.

 

转载于:https://www.cnblogs.com/LeimOO/p/3615047.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值