ACTION与FUNC

ACTION与FUNC,第1张

ACTION与FUNC


一、【action<>】指定那些只有输入参数,没有返回值的委托

Delegate的代码:

public delegate void myDelegate(string str);
public static void HellowChinese(string strChinese)
{
Console.WriteLine("Good morning," + strChinese);
Console.ReadLine();
} myDelegate d = new myDelegate(HellowChinese);
d("Mr wang");

用了Action之后呢:

public static void HellowChinese(string strChinese)
{
Console.WriteLine("Good morning," + strChinese);
Console.ReadLine();
} Action<string> action = HellowChinese;
action("Spring.");

就是相当于省去了定义委托的步骤了。



二、func<> 这个和上面的那个是一样的,区别是这个有返回值!

public static string HelloEnglish(string strEnglish)
{
return "Hello." + strEnglish;
} Func<string, string> f = HelloEnglish;
Console.WriteLine(f("Srping ji"));
Console.ReadLine();

------------------------------------------------------------

稍微扩展一些

在C#3.0中引用了Limbda表达式,Limbda表达式实际上就是一个方法,只不过该方法是匿名方法(即没有名称的方法)

代码片段:  Func<int,string,string> t=(int x, string b) => (x.ToString() + b);就等于

private  string  deletegate  TestString(int x string b );//定义一个委托,返回值为string类型

private string  test(int x string b)

{

  return x.ToString() + b;

}

TestString t=new TestString(test);

t(44,"bbb");

Func<int,string,string>就是定义一个委托=private  string  deletegate  TestString(int x string b ),前两个参数是相应方法的参数类型,最后一个为方法的返回类型。


由此看到FUNC的最后一个参数是返回值

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/587649.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-12
下一篇 2022-04-12

发表评论

登录后才能评论

评论列表(0条)

保存