【问题标题】:How make Dictionary with lambda functions, with different numbers of parameters [closed]如何使用具有不同数量参数的 lambda 函数制作字典 [关闭]
【发布时间】:2014-01-13 19:10:11
【问题描述】:

如何使用 lambda 函数制作 Dictionary,即 Func 包含不同数量的参数?

Dictionary<string, Func<T, double>> operationsList 
  = new Dictionary<string, Func<T, double>>();

原来如此?

【问题讨论】:

  • 你能不能再具体一点,这不是很清楚。
  • 假设你这样做了,你会如何使用这样的字典?
  • 你不能。字典只存储一种类型。如果要存储异构对象,则必须使用Objectdynamic,然后强制转换为你想要的类型。
  • 你可以制作你的 Dictionary ,但我不确定这是你想要的
  • 请提供一个代码示例,说明您正在尝试做什么。

标签: c# dictionary lambda delegates


【解决方案1】:

您可以将字典类型设为Delegate,但我很确定以这种方式存储调用Func&lt;&gt; 会很痛苦:

var dict = new Dictionary<int, Delegate>();
dict.Add(1, (Func<int, int>)((int x) => x * 10));
dict.Add(2, (Func<int>)(() => 10));

调用:

var result1 = dict[1].DynamicInvoke(10);
var result2 = dict[2].DynamicInvoke();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-27
    • 1970-01-01
    • 2018-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 2011-01-26
    相关资源
    最近更新 更多