我刚才看到一个brand-new video上的Rx框架和一个特定的签名吸引了我的眼球:Action <Action>是什么意思?
Scheduler.schedule(this IScheduler, Action<Action>)
在23:55,巴特迪斯说:
的最早版本是行动行动。
如果Action
是一个参数化类型,它又如何在尖括号内再次出现未参数化?难道它不会是无限的,这显然是不可能的?
我刚才看到一个brand-new video上的Rx框架和一个特定的签名吸引了我的眼球:Action <Action>是什么意思?
Scheduler.schedule(this IScheduler, Action<Action>)
在23:55,巴特迪斯说:
的最早版本是行动行动。
如果Action
是一个参数化类型,它又如何在尖括号内再次出现未参数化?难道它不会是无限的,这显然是不可能的?
Action
有几个重载。一个是非通用的,另外一个是一个,两个,三个等类型参数。假设它们具有不同的名称,单参数版本被称为Action1
,并且零参数(非通用)被称为Action0
,那么示例将是Action1<Action0>
。
@pst在编辑其他人的答案时,请注意将来的更多注意事项您删除了我的文本的一半 –
我没有删除文本如果删除了文本,它就是SO部分的并发失败(乐观并发工作/雇用对于给用户带来的不便,我对此表示歉意 – 2011-06-30 04:25:50
显然过于乐观 –
默认参数似乎是这里的简单解决方案。
什么......的默认参数? :( – 2011-06-29 18:12:27
行动具有非通用版本与签名:
public delegate void Action();
所以它是一个用语,使void类型的动作。看起来很有趣,但是完全有效。
Action<T>
描述了一个采用T类型的单个参数的委托。Action
描述了一个不带参数的委托。
请参阅http://msdn.microsoft.com/en-us/library/system.action.aspx
是否还有非通用的'Action'类型?这将解释它:) – jalf
aww,现在我觉得很愚蠢我没有回答这个问题 – jalf
如果你真的想要一种烘焙面条的类型,可以使用“代理D D(D d)”;一会儿,看看你能做什么。 –