.Net中的反射功能是极其强大的,本篇先用他来动态调用方法
看如下一个类
Public Class A
{
public void InvokeMethod(string methodname)
{
Type p=this.GetType();
MethodInfo m=p.GetMethod(methodname);
if(m!=null)
m.Invkoe(this,new object[0])
}
public void MethodA()
{
}
public void MethodB()
{
}
}
上面的类中在InvokeMethod方法中传进MethodA或MethodB字符串就能执行MethodA或MethodB方法了
当然还可以在进行如下改进:
public object FunctionA(int par1,object par2)
{
do something...
return some
}
public object InvokeMethod(string methodname,object[] paramet)
{
Type[] ptype=new Type[paramet.Length];
for(int i=0;i<ptype.Length;i++)
ptype[i]=paramet[i].GetType();
Type p=this.GetType();
MethodInfo m=p.GetMethod(methodname,ptype);
if(m!=null)
return m.Invkoe(this,paramet);
return null
}
调用InvokeMethod并传进方法名称和方法参数就能调用相应的方法,并返回值.
哈哈,就说这些,投石问路哈