所有Func委托都返回一个值。哪些.NET委托可以用于返回void的方法?
当前回答
偶尔你会想写一个事件处理的委托,在这种情况下,你可以利用系统。EvenHandler<T>,它隐式接受一个object类型的参数,以及应该从EventArgs派生的第二个参数。EventHandlers将返回void
我个人认为,在测试过程中,这对于在函数体中创建一次性回调非常有用。
其他回答
... 不接受参数,并有一个无效返回类型?
我相信行动可以解决这个问题。
所有Func委托都会返回一些东西;所有Action代表返回为空。
Func< result >不带参数,返回result:
public delegate TResult Func<TResult>()
Action<T>接受一个参数并且不返回值:
public delegate void Action<T>(T obj)
Action是最简单的“裸”委托:
public delegate void Action()
还有Func<TArg1, TResult>和Action<TArg1, TArg2>(以及其他多达16个参数)。所有这些(除了Action<T>)都是。net 3.5(在System.Core中定义)的新特性。
试系统。Func<T>和System。行动
所有Func委托至少接受一个参数
这不是真的。它们都至少有一个类型参数,但该参数决定返回类型。
所以Func<T>不接受参数并返回一个值。当您不想返回值时,使用Action或Action<T>。
偶尔你会想写一个事件处理的委托,在这种情况下,你可以利用系统。EvenHandler<T>,它隐式接受一个object类型的参数,以及应该从EventArgs派生的第二个参数。EventHandlers将返回void
我个人认为,在测试过程中,这对于在函数体中创建一次性回调非常有用。
推荐文章
- 防止在ASP中缓存。NET MVC中使用属性的特定操作
- 转换为值类型'Int32'失败,因为物化值为空
- c#中有任何连接字符串解析器吗?
- 在Linq中转换int到字符串到实体的问题
- 是否可以动态编译和执行c#代码片段?
- 创建自定义MSBuild任务时,如何从c#代码获取当前项目目录?
- MSBuild路径
- c#和Java的主要区别是什么?
- 在c#中创建一个特定时区的DateTime
- .NET中的属性是什么?
- csproj文件中的“Service Include”是干什么用的?
- 如何使用try catch进行异常处理是最佳实践
- 替换字符串中第一次出现的模式
- .NET中字节的字面后缀?
- 如何处理AccessViolationException