12: }
然后,我们用代码来实现谷子地所完成的行动:
1: internal class ChineseArmy
2: {
3: public static void Action(object soldier)
4: {
5: Type type = soldier.GetType();
6: object ziDiGu = Activator.CreateInstance(type);
7: MethodInfo methodInfo = type.GetMethod("Search");
8:
9: Console.WriteLine(methodInfo.Invoke(ziDiGu, new object { "Position" }));
10: }
11: }
这段代码很好理解,第5行我们审问了被俘的南朝鲜士兵并得到了他提供的信息和服装,然后让老谷用他的服装化装成南朝鲜士兵。第7行,小样,你不是想侦查我吗,好,咱就来个以牙还牙,用你的方式来搞定你!接下来,谷子地潜入地方阵地并引导了我军发起总攻。
这里展示了反射的一些基本应用,例如获取类型信息、利用获取的类型动态生成对象,并动态调用其方法。当然,反射机制能做的事情不仅仅是这几样,不过目标都一样,由程序自己去获取信息、做出反应。在不用担心性能开销的情况下,反射可以使你的程序更加灵活强大!