行动<Action>是什么意思?



我刚刚在Rx框架上看到了一个全新的视频,一个特别的签名引起了我的注意:

Scheduler.schedule(this IScheduler, Action<Action>)

23:55,巴特·德·斯梅特说:

最早的版本是行动的行动

如果Action是参数化类型,它如何再次在尖括号内显示为未参数化?难道它不是必须无限Action<Action<Action<...>>>,这显然是不可能的吗?

Action<T>描述采用 T 类型的单个参数的委托。 Action描述不带参数的委托。

见 http://msdn.microsoft.com/en-us/library/system.action.aspx

Action有几个重载。一个是非泛型的,其他的采用一个、两个、三个等类型参数。假设它们有不同的名称,单参数版本称为Action1,零参数(非泛型(称为Action0,那么示例将是Action1<Action0>

来自 MSDN:

  • 行动
  • 动作

操作示例

Action showMethod = () => { Console.WriteLine("Line"); };
showMethod();

操作示例

Action<int> showMethod = (i) => { Console.WriteLine("Line {0}", i); };
showMethod(1);

Action 具有具有签名的非通用版本:

public delegate void Action();

因此,这是一个采取 void 类型的操作的操作。看起来很有趣,但完全有效。

默认参数似乎是这里的简单解决方案。

相关内容

  • 没有找到相关文章