首页 > 代码库 > C# 委托,Lambda表达式,事件

C# 委托,Lambda表达式,事件

本文章参考sikiC#高级篇,转载请注明出处。

什么是委托

  如果我们要把方法当做参数来传递的话,就要用到委托。简单来说委托是一个类型,这个类型可以赋值一个方法的引用。

声明委托与使用

  声明委托有四种方式。一种是原生的,另外三种是C#为了方便给我们封装好的。

  四种声明方式分别为delegate, Action, Func, 

  在C#中使用一个类分为两个阶段,首先定义这个类,告诉编译器这个类由什么字段和方法组成,然后使用这个类实例化对象。在我们使用委托的时候,也需要经过这两个阶段,首先定义委托,告诉编译器我们这个委托可以指向哪些类型,然后,创建该委托的实例。

  delegate定义和使用方式如下:

delegate void IntMethodInvoker(int x);

static void Test1(int x)
{
    Console.WriteLine("int值为:" + x);
}

static void Test2(string s)
{
    Console.WriteLine("string值为:" + s);
}

static void Main()
{
    IntMethodInvoker method = Test1;
    method();
    // 以下操作是违法的
    // IntMethodInvoker me = Test2;
}

  这个委托只能指向一个返回值为void有一个int参数的方法,其他方法是无法指向的。(未完待续)

 

  

 

C# 委托,Lambda表达式,事件