您的位置:首页 > 编程语言 > C#

C#: Delegate and Event

2014-03-21 04:49 309 查看
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.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: