namespace Namespace1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public string fun1(string str)
{
return "调用函数fun1,当前秒:" + str;
}
public string fun2(string str)
{
return "调用函数fun2,当前秒:" + str;
}
private void button1_Click(object sender, EventArgs e)
{
//1、生成类型,Assembly.Load("命名空间").GetType("命名空间.类名")
Type type = Assembly.Load("Namespace1").GetType("Namespace1.Form1");
//2、实例化这个类型
object obj = Activator.CreateInstance(type);
//3、建立一个调用方法的类
MethodInfo method;
string ss = DateTime.Now.ToString("ss");//当前时间-秒
if (Convert.ToInt16(ss) % 2 == 0) //秒是偶数的情况
{
method = type.GetMethod("fun1"); //根据条件选择要调用的方法
}
else
{
method = type.GetMethod("fun2");
}
//4、方法的参数,多个参数可以逗号分隔
object[] para=new object[]{ss};
//5、调用
this.Text=method.Invoke(obj, para).ToString();
}
}
}
如果调用的是static方法,则第2步可以不用,第5步中的obj可以变为null
注意:要调用的方法不能是Private的。