gpt4 book ai didi

c# - 如何基于包含其名称的字符串执行方法

转载 作者:太空宇宙 更新时间:2023-11-03 21:46:36 27 4
gpt4 key购买 nike

我有一个包含多个方法的对象,在它之外我有一个字符串列表,其中每个字符串值都是方法的名称。我想根据名称执行方法。从经验来看,在 python 中它非常简单。在 c# 中,我假设它应该由我认为的委托(delegate)来完成。或者使用 methodInvoking?我想忽略对此的反射(reflection)。

在 python 中,你可以将方法存储为对象,因为它是一个对象。

def a():
return 1
def b():
return 2
def c():
return 3

l= [a,b,c]

for i in l:
print i()

输出将是:

>>> 1
>>> 2
>>> 3

最佳答案

如果你想忽略反射,你可以为每个方法调用创建一个委托(delegate)并存储在字典中。

操作方法如下:

var methods = new Dictionary<string, Action >() {
{"Foo", () => Foo()},
{"Moo", () => Moo()},
{"Boo", () => Boo()}
};

methods["Foo"].Invoke();

关于c# - 如何基于包含其名称的字符串执行方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16687330/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com