类图
代码
using System;
using System.Reflection;
class Af{
public int af = 10;
protected int bf = 20;
public void funf(){
}
protected void funfProtected(){
}
}
class A : Af{
public int a=1;
int b=2;
private int c = 3;
public int As{
get{
return a;
}
set{
a = value;
}
}
public int Bs{
get{
return b;
}
set{
b = value;
}
}
public void fun1(){
}
void fun2(){
}
}
class HelloWorld
{
static void Main(string[] args)
{
HelloWorld hw = new HelloWorld();
hw.mian();
}
private void mian(){
Console.WriteLine("反射实验");
Type t = Type.GetType("A");
// 无参构造
A a = (A)Activator.CreateInstance(t);
Field(t,a);
Method(t,a);
Property(t,a);
Member(t,a);
}
private void Field(Type t,Object o){
Console.WriteLine("\nField:");
foreach(FieldInfo fi in t.GetFields()){
//Console.WriteLine(fi.GetType().Name);
Console.WriteLine(fi.Name);
}
}
private void Property(Type t,Object o){
Console.WriteLine("\nPropertie:");
foreach (PropertyInfo pi in t.GetProperties()){
Console.WriteLine(pi.GetValue(o, null));
Console.WriteLine(pi.GetType().Name);
Console.WriteLine(pi.Name);
}
}
private void Member(Type t,Object o){
Console.WriteLine("\nMember:");
foreach(MemberInfo mi in t.GetMembers()){
Console.WriteLine(mi.GetType().Name);
Console.WriteLine(mi.Name);
}
}
private void Method(Type t,Object o){
Console.WriteLine("\nMethod:");
foreach(MethodInfo mi in t.GetMethods()){
Console.WriteLine(mi.GetType().Name);
Console.WriteLine(mi.Name);
}
}
}
运行效果
规律总结