You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中Action类型是否有返回值?泛型Action用法相关疑问

问题解答

关于Action定义的疑问

  • 你对Action返回值的认知是完全正确的:所有Action系列委托的返回值固定为void,没有例外。不带任何泛型参数的Action才是无参数、返回void的委托,每多一个泛型参数就代表多一个对应类型的入参。
  • 你看到的Action<MainViewModel, MainViewModel>是带两个泛型参数的Action委托,所以这个SetView属性确实要接收两个MainViewModel类型的参数,没有返回值。

关于赋值代码的疑问

你提到的ViewModel.SetView不是类型转换,这个写法是委托的方法绑定:

  • 这里的ViewModel.SetView是一个已经定义好的类方法,它的签名必然和Action<MainViewModel,MainViewModel>的要求完全匹配:接收两个MainViewModel类型的入参,返回值为void。
  • 把这个方法作为参数传入Action的构造函数后,生成的委托实例就和这个方法绑定了,后续你调用SetView(参数1, 参数2)的时候,本质就是执行ViewModel.SetView(参数1, 参数2)这个方法。

内容的提问来源于stack exchange,提问作者leon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 08:54:04