繁体   English   中英

c#字典方法作为值

[英]c# dictionary method as a value

我有一个包含大量方法的类,这些方法在调用时在程序的其他地方传输变量。 我想在传输数据的方法和调用它们的方法之间使用字典作为中间人。

所以这是我的问题。 假设我创建了一个字典,其中键是一个int ,我希望该值是方法的名称。 每次添加到字典时,我都会分配一个新的值/方法。 我可以放在那里的价值类型让我这样做吗?

Dictionary<int, ?> methodKey= new Dictionary<int, ?>();

我试图找到字典将采用的类型列表,但我找不到任何具体的东西。

提前致谢

使用任何委托类型作为值的类型。 例如:

Dictionary<int, Action>

所以,你将能够写出这样的东西:

        dictionary[0] = () => Console.WriteLine("0");
        dictionary[1] = Foo;
        dictionary[2] = a.Bar;

特定的委托类型取决于您的需求 - 可能是,您希望方法具有一些输入参数或输出/返回值,但它应该是最常见的类型。

所有方法都会有相同的签名吗? 如果是这样,您可以使用现有的ActionFunc委托之一(或者您可以使用该签名创建委托类型),并将其用作第二个类型参数。

如果没有,您可以在调用委托时使用Delegate (甚至object )并强制转换为适当的类型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM