关于C#中的Action代理的详细信息

前端之家收集整理的这篇文章主要介绍了关于C#中的Action代理的详细信息前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
1)Action委托的真正定义是什么?一些定义描述它是多态条件映射,有人说它*应用决策表*.

(你可能会问你通过了解定义会得到什么,如果我知道它我能理解它的真正目的).

2)感谢Binary Worrier,Andrew Hare的stackoverflow给出了很好的例子.
当我宣布

string[] words = "This is as easy as it looks".Split(' ');
 `Array.ForEach(words,p => Console.WriteLine(p));`

我可以理解它究竟是做什么的.但是当我宣布时,C#如何解释我
宣布

Dictionary<SomeEnum,Action<User>> methodList =
     new Dictionary<SomeEnum,Action<User>>()
     methodList.Add(SomeEnum.One,DoSomething);
     methodList.Add(SomeEnum.Two,DoSomethingElse);

它是否在字典中存储了Actions的集合?.不幸的是,由于示例不完整,我没有得到它.

3)Action,Function,Predicate delagets之间的功能区别是什么?

解决方法

这只是另一位代表.动作及LT; T>声明如下:
void Action<T>(T item)

它只是“对单个项目起作用的东西”.存在具有更多类型参数和正常参数的泛型重载.本身,Action< T>不是一个应用的决策表或类似的东西 – 它只是一个可以对项目做“某事”的代表.

字典示例只是一个字典,其中枚举值为键,操作为值 – 因此您可以根据枚举值查找要执行的操作,然后传入用户引用以对其进行操作.

至于Func vs Action vs Predicate:Func就像Action,但返回一个值.谓词类似,但总是返回bool,并且没有泛型重载的范围,只是Predicate< T>确定项是否“匹配”谓词.

原文链接:https://www.f2er.com/csharp/98301.html

猜你在找的C#相关文章