【发布时间】:2014-06-04 16:48:45
【问题描述】:
提前为 新手 有点问题道歉(因为我是 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);
我错了吗?如果是的话,请您提供一个反例吗?
【问题讨论】:
-
我会定义 Action 和 Func als Wrapper/helper 类,使程序易于使用和标准化的委托。
-
谢谢@Tarec。我希望我的问题与以前的一些帖子重复,但一直没能找到。您的链接为我的问题提供了部分答案,但它解释了我已经知道的一些事情。所以基本上我只是想弄清楚一旦你有
Action和Func它“涵盖了整个事情”,还是我在这里遗漏了什么?再次感谢。 -
@barakmanos 你是对的,这个答案并不能解释使用两者的目的的区别。请查看此说明,希望对您有所帮助;)stackoverflow.com/a/18741018/1284902