Action <action>是什么意思?</action>

时间:2011-06-29 18:09:30

标签: c# generics recursion types system.reactive

我刚刚在Rx框架上看到brand-new video,一个特别的签名引起了我的注意:

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

23:55,Bart de Smet说:

  

最早的版本是行动动作

如果Action是参数化类型,它又如何在尖括号内显示为无参数?这不一定是无限Action<Action<Action<...>>>,这显然是不可能的吗?

5 个答案:

答案 0 :(得分:4)

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

请参阅http://msdn.microsoft.com/en-us/library/system.action.aspx

答案 1 :(得分:3)

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

答案 2 :(得分:1)

来自MSDN:

动作示例

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

showMethod();

<强>动作与LT; T&GT;示例

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

showMethod(1);

答案 3 :(得分:0)

Action有一个带有签名的非泛型版本:

public delegate void Action();

所以它是一个采用void类型的Action的Action。看起来很有趣,但完全有效。

答案 4 :(得分:-1)

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