c# 带返回值的action_C#中的Action<>和Func<>

其实他们两个都是委托【代理】的简写形式。

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

Delegate的代码:

public delegate void myDelegate(stringstr);public static void HellowChinese(stringstrChinese)

{

Console.WriteLine("Good morning," +strChinese);

Console.ReadLine();

}

myDelegate d= newmyDelegate(HellowChinese);

d("Mr wang");

用了Action之后呢:

public static void HellowChinese(stringstrChinese)

{

Console.WriteLine("Good morning," +strChinese);

Console.ReadLine();

}

Action action =HellowChinese;

action("Spring.");

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

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

public static string HelloEnglish(stringstrEnglish)

{return "Hello." +strEnglish;

}

Func f =HelloEnglish;

Console.WriteLine(f("Srping ji"));

Console.ReadLine();

Func<>是一个能接受多个参数和一个返回值的泛型委托,它能接受0个到4个输入参数, 其中 T1,T2,T3,T4 代表自定的输入类型,TResult为自定义的返回值。

public delegate TResult Func()

public delegate TResult Func(T1 arg1)

public delegate TResult Func(T1 arg1,T2 arg2)

public delegate TResult Func(T1 arg1,T2 arg2,T3 arg3)

public delegate TResult Func(T1 arg1,T2 arg2,T3 arg3,T4 arg4)

Action<>与Func<>十分相似,不同在于Action<>的返回值为void,Action能接受1~16个参数

public delegate void Action()

public delegate void Action(T1 arg1,T2 arg2)

public delegate void Action(T1 arg1,T2 arg2, T3 arg3)

.............

public delegate void Action(T1 arg1,T2 arg2,T3 arg3,T4 arg4,...... ,T16 arg16)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C#ActionFunc是两种常用的委托类型。Action是一个没有返回值的委托,而Func是一个有返回值的委托。\[1\] 在代码示例,使用了FuncAction来定义委托并执行相应的方法。Func可以定义有不同参数和返回值类型的委托,而Action只能定义有参数但没有返回值的委托。\[1\] 在示例,MyFun1是一个无参的Func委托,返回一个string值。MyFun2是一个有一个string参数的Func委托,返回一个string值。MyFun3是一个有两个string参数的Func委托,返回一个bool值。\[1\] 另外,示例还展示了使用Action来定义委托的写法。在Start方法,使用Action定义了一个有一个string参数的委托act,并执行了Init方法。\[2\] 此外,还可以使用Lambda表达式来创建委托。Lambda表达式可以简化委托的定义和使用。在示例,使用Lambda表达式创建了一个有一个string参数的Action委托。\[3\] 总结来说,ActionFuncC#常用的委托类型,用于定义不同参数和返回值类型的委托。Action用于定义没有返回值的委托,而Func用于定义有返回值的委托。可以使用Lambda表达式来简化委托的定义和使用。 #### 引用[.reference_title] - *1* *2* [c#ActionFunc(简单用法)](https://blog.csdn.net/qq_39984000/article/details/115245134)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [C#语法:C# 简述Actionfunction内置委托用法、Lambda 表达式创建委托最为方便](https://blog.csdn.net/qq_37271216/article/details/102801792)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值