//声明一个Assembly类的实例,通过其静态方法LoadFile(传入一个绝对路径,是程序集的路径(什么是程序集?))
Assemblyasm=Assembly.LoadFile(@"F:\Documents\code\DotNet复习\2013年9月10日入学前总复习\51反射\bin\Debug\52Class.dll");
//Assembly类的对象有一个GetTypes()的方法,可以获得这个程序集的所有类型
Type[]typeArray1=asm.GetExportedTypes();
//Assembly类的对象有一个GetTypes()的方法,可以获得这个程序集的所有类型,需要传入完全限定类名
TypetypeClass1=asm.GetType("_52Class.Class1");
/*TypetypeClass2=asm.GetType(typeArray1[1].Name);*/
//Assembly类的对象有一个GetMethods()方法,和GetMethod()方法,返回类型是MethodInfo[]和MethodInfo
MethodInfo[]miA1=typeClass1.GetMethods();
MethodInfomi1=typeClass1.GetMethod(miA1[0].Name);
MethodInfomi2=typeClass1.GetMethod(miA1[1].Name);
//MethodInfo类的对象有一个Invoke()方法,就是调用的效果,这个Invoke()方法有两个参数,第一个是实例化的对象,newObject(),
//另一个,如果没有参数,就传入null
miA1[0].Invoke(null,null);
objectobj1=Activator.CreateInstance(typeClass1);
miA1[1].Invoke(obj1,null);
//Console.ReadKey();
inti=16;
intj=2;
doubled1=(double)(i>>j);
//d1=i/2^j;
Console.WriteLine(d1);
Console.ReadKey();
|
|