c#委托的使用(2)

c#委托的使用(2)

在上一期的委托的使用里面,知道系统定义的委托由两个Action<参数>Func<参数,返回值>,如果忘了的同学可以翻回去看看,这是链接。今天来讲讲委托的使用、匿名函数lamda表达式

委托可以当方法参数来使用。

public static void Send(Action a) //定义一个方法,参数是无返回值方法Action
{
      a(); //传入方法的实现
}
//定义要传入的方法
public static void Word()
{
    Console.WriteLine("Come to see me");
}
//在main方法里实现
public static void Main()
{
    Send(Word);
    Console.ReadLine();//暂停一下控制台
}

运行结果:这里写图片描述

每次使用都要定义一个函数很麻烦,有时候方法只使用一次,可以传入匿名函数
匿名函数:只使用一次的代码,但是用的不多

static void Send(Func<int,string> a) //定义一个方法,参数是由返回值方法Func<>
{
     string str = a(1001); //执行入口,传入一个数字,接受返回值,
     Console.WriteLine(str);
}

 public static void Main()
 {
      Send(delegate (int a)  //写匿名方法,只调用一次的方法
      {
              return a.ToString();
      });
        Console.ReadLine();//暂停一下控制台
}

运行结果:这里写图片描述

lamda表达式是简化了上匿名方法,不用写delegate关键字。是比较常见的写法

static void Send(Func<int,string> a) //定义一个方法,参数是由返回值方法Func<>
{
     string str = a(1001); //执行入口,传入一个数字,接受返回值,
     Console.WriteLine(str);
}

 public static void Main()
 {
      Send( (int a) =>{ //lamda表达式,括号里面写参数,
              return a.ToString();
      });
        Console.ReadLine();//暂停一下控制台
}

输出结果:这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_38061677/article/details/80939078