为新手提出的问题提前道歉(因为我是C#中的一员):
在研究代表时,在我看来,关键字的整个"功能" 的组合Action和Func覆盖delegate.
换句话说,您无法对delegate关键字执行任何操作,但无法使用Action或关键字Func.
我尝试过以下示例(工作正常):
Func<int,int,int,int> func = (x,y,z) => (x<<9)|(y<<6)|(z<<3);
Action<int,int,int> action = (x,y,z) => Console.WriteLine(x|y|z);
Run Code Online (Sandbox Code Playgroud)
我错了吗?如果是,那么请您提供一个反例吗?
您将需要使用委托以外Action或者Func如果你想有:
超过16个参数到您的方法.
任何参数ref或out参数.
一个params参数.
任何参数的可选参数.
对任何泛型参数的约束.(确保参数是扩展类型的任何类型,它具有无参数构造函数,它是值/引用类型等)
unsafe 方法签名中使用的类型,例如指针作为参数.
有一个不是逆变的参数,或者一个不协变的返回类型. Func并且Action两者都尽可能地应用差异,所以如果你的代表不是变体很重要,你需要自己的.
| 归档时间: |
|
| 查看次数: |
118 次 |
| 最近记录: |