[英]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;
特定的委托类型取决于您的需求 - 可能是,您希望方法具有一些输入参数或输出/返回值,但它应该是最常见的类型。
所有方法都会有相同的签名吗? 如果是这样,您可以使用现有的Action
或Func
委托之一(或者您可以使用该签名创建委托类型),并将其用作第二个类型参数。
如果没有,您可以在调用委托时使用Delegate
(甚至object
)并强制转换为适当的类型。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.