黑马程序员技术交流社区
标题:
反射
[打印本页]
作者:
张寅平
时间:
2012-7-23 16:39
标题:
反射
哪位高手能详细的介绍一下反射,最好能举例说明。
作者:
许庭洲
时间:
2012-7-23 17:06
1,反射相当于动态编译,
2,反射就是在程序运行时根据元数据来影响程序执行的逻辑;
3, 举例
using sendkey;
public key kk = new key();
int pid=0,jbid=0;
pid = kk.pid("su_client.exe");
label1.Text +="="+ pid.ToString(); //返回一个指定程序的PID
jbid = kk.findwin(txtname.Text);
pid = kk.pid(jbid);
label2.Text += "=" + pid.ToString();
System.Reflection.Assembly asm = Assembly.LoadFile(@"E:\sendkey.dll");
//获取类型
Type t = asm.GetType("sendkey.key");
//获取没有参数的构造函数
System.Reflection.ConstructorInfo conn = t.GetConstructor(new Type[0]);
//调用没有参数的构造函数,Invoke返回object它其是a类
object a1 = conn.Invoke(new object[0]);
//获取参数类型为int,函数名为func的方法
MethodInfo method = t.GetMethod("pid", new Type[] { typeof(String) });
//在a1上调用func方法,参数为1
label1.Text=method.Invoke(a1, new object[] { "QQ.exe" }).ToString(); //返回一个指定程序的PID
作者:
黄涛
时间:
2012-7-23 17:18
反射相当于动态编译,就是在程序运行时根据元数据来影响程序执行的逻辑!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2