0
在方法中,我想調用其名稱作爲參數的共享函數。如何調用其名稱作爲參數的共享函數
例如:
private shared function func1(byval func2 as string)
'call func2
end function
我該怎麼辦呢?
在方法中,我想調用其名稱作爲參數的共享函數。如何調用其名稱作爲參數的共享函數
例如:
private shared function func1(byval func2 as string)
'call func2
end function
我該怎麼辦呢?
您可以使用反射來查找類和方法。
實施例C#:
namespace TestProgram {
public static class TestClass {
public static void Test() {
Console.WriteLine("Success!");
}
}
class Program {
public static void CallMethod(string name) {
int pos = name.LastIndexOf('.');
string className = name.Substring(0, pos);
string methodName = name.Substring(pos + 1);
Type.GetType(className).GetMethod(methodName).Invoke(null, null);
}
static void Main() {
CallMethod("TestProgram.TestClass.Test");
}
}
}
您可以使用反射:
class Program
{
static void Main(string[] args)
{
new Program().Foo("Bar");
}
public void Foo(string funcName)
{
GetType().GetMethod(funcName).Invoke(this, null);
}
public void Bar()
{
Console.WriteLine("bar");
}
}
或者如果它是一個靜態方法:
typeof(TypeThatContainsTheStaticMethod)
.GetMethod(funcName)
.Invoke(null, null);
這不是C#。 – TheFogger 2010-06-21 08:41:15
對此我很抱歉。 – mavera 2010-06-23 07:05:09