我在这个论坛中搜索了这些问题并找到了很好的资源。我自己编写了以下代码来理解反射的概念。
static void Main(String[] args)
{
MyClass1 mc1 = new MyClass1();
Type t = mc1.GetType();
MethodInfo mInfo = t.GetMethod("method1");
object[] o=new object[]{2};
Console.WriteLine(mInfo.Invoke(mc1, o));
NameSpace2.Class1 c1 = new NameSpace2.Class1();
Type t2 = c1.GetType();
MethodInfo[] mI2 = t2.GetMethods();
object[] o2 = new object[] {2,3};
foreach (MethodInfo m in mI2)
{
Console.WriteLine(m);
}
object x = Activator.CreateInstance(t);
Console.WriteLine(x.GetType());
Console.Read();
}
我知道通过反射,我将能够在运行时获取有关类型、公共方法、对象属性的信息,并且还能够创建该类型的对象。但我的观点是,除非并且直到我知道方法需要作为输入的参数是什么,否则我将无法实现任何方法,并且这些信息仅在运行时可用。那么,反射的重要性是什么,它只是关于一个对象的信息吗?