不是真的,我能想到的唯一缺点是,如果你有一个逻辑意图(超出预期的参数和返回值),你希望用户满足使用泛型代表可能会丢失.
例如:
public delegate void ClearAllValuesDelegate(MyClass X);
// ...
ClearAllValuesDelegate myDelegate;
Run Code Online (Sandbox Code Playgroud)
VS:
Action<MyClass> myDelegate;
Run Code Online (Sandbox Code Playgroud)
在前者中,很明显的意图是该动作应该清除引用中的所有值(尽管当然没有办法强制执行).而Action<>只是告诉你它需要什么,而不是其他.就像我说的,这只是一个逻辑上的区别.
但实际上,我所知道的并没有很大的缺点.大多数情况下,当我们使用时Func<>,Action<>我们只是要求调用者给我们一个仅满足输入/输出的目标.
| 归档时间: |
|
| 查看次数: |
773 次 |
| 最近记录: |