gpt4 book ai didi

.net - 如何使用反射调用 .NET 中的重载方法

转载 作者:行者123 更新时间:2023-12-03 05:32:11 25 4
gpt4 key购买 nike

有没有办法在.NET(2.0)中使用反射来调用重载方法。我有一个应用程序动态实例化从公共(public)基类派生的类。出于兼容性目的,此基类包含 2 个同名的方法,一种带参数,一种不带参数。我需要通过 Invoke 方法调用无参数方法。现在,我得到的只是一个错误,告诉我我正在尝试调用一个不明确的方法。

是的,我可以将对象强制转换为我的基类的实例并调用我需要的方法。最终将会发生,但目前,内部并发症不允许它发生。

任何帮助都会很棒!谢谢。

最佳答案

您必须指定所需的方法:

class SomeType 
{
void Foo(int size, string bar) { }
void Foo() { }
}

SomeType obj = new SomeType();
// call with int and string arguments
obj.GetType()
.GetMethod("Foo", new Type[] { typeof(int), typeof(string) })
.Invoke(obj, new object[] { 42, "Hello" });
// call without arguments
obj.GetType()
.GetMethod("Foo", new Type[0])
.Invoke(obj, new object[0]);

关于.net - 如何使用反射调用 .NET 中的重载方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/223495/

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