c#-使用参数调用方法

c#-使用参数调用方法,c#,C#,如何使用参数调用方法 我有这个: List<String> methods = new List<String>(new List<String>{ "first", "second" }); int number = 4; String text = "Hi"; bool isTrue = false; 有可能吗?我不完全确定您在问什么,但我假设您正在尝试按名称调用一个方法,并且该方法具有参数。还假设: 您有一个名为obj的对象,其类型为YourObje

如何使用参数调用方法

我有这个:

List<String> methods = new List<String>(new List<String>{ "first", "second" });
int number = 4;
String text = "Hi";
bool isTrue = false;

有可能吗?

我不完全确定您在问什么,但我假设您正在尝试按名称调用一个方法,并且该方法具有参数。还假设:

  • 您有一个名为
    obj
    的对象,其类型为
    YourObject
  • YourObject
    包含名为
    first
    second
然后,您应该能够使用以下各项:

if (isTrue)
    typeof(YourObject).GetMethod(methods[0]).Invoke(obj, new[] { number });
else if (!isTrue)
    typeof(YourObject).GetMethod(methods[1]).Invoke(obj, new[] { number, text });

我不明白这个问题,你是在寻求某种反思吗?@PeterBons有可能他只是想要一种新方法,对吗?我不确定
Invoke
是如何工作的,但我认为它在这里的用法是错误的。我认为标准的方法调用可以很好地工作。对吗?你能给我写信告诉我如何创建object obj吗?假设你不能做var obj=new YourObject(),我会告诉你这个答案:为什么要投反对票?如果答案有问题,请你解释一下是什么,或者更正一下答案,我不投你反对票。我可以为var obj=newyourObject()赋值吗;没有创建新的?@MineGame159我没有指责你投了反对票——我不知道谁投了反对票,但有人投了。至于你最后的评论,我不知道你的意思。正如我所说,你想做什么还不完全清楚,所以很难给出进一步的建议。如果你能在你的问题中增加一些细节,那会有所帮助。新建YourObject()将创建一个新对象。或者您是在问是否需要创建类?如果是,那么是的。
if (isTrue)
    typeof(YourObject).GetMethod(methods[0]).Invoke(obj, new[] { number });
else if (!isTrue)
    typeof(YourObject).GetMethod(methods[1]).Invoke(obj, new[] { number, text });