将Generic Delegates添加为Dictionary值

时间:2014-07-17 07:10:05

标签: c# dictionary

我想创建一个字典,其中Key为字符串,Value为Delegates,如

private Dictionary<string, Delegate> Mapping = new Dictionary<string, Delegate>();

我需要一个泛型委托来根据委托方法返回不同的值。

public delegate T MyDelegate(string value);

我的委托事件应返回不同的值,如int,string,boolean ... etc

现在我想将它添加到字典映射中,如

Mapping.Add("Test",Add mydelegate here)

任何人都可以帮我如何将委托添加到字典中吗?

1 个答案:

答案 0 :(得分:0)

您的委托声明或函数必须具有具体的返回类型(可以通过泛型分配)。修复此返回类型后,插入字典中的值必须具有相同的返回类型。因此,你无法做你想要的。

但是,您可以使用object作为委托的返回类型,并让每个函数返回它们的任何类型(例如intstringboolean, ...)。缺点是使用该返回类型的代码很可能必须检查返回类型并执行必要的强制转换(使用isas关键字)。