实际上这个不是完全可以的

这个是可以的:
MyClass.Animal animal = new MyClass.Wolf();
MyClass.Wolf wolf = animal as MyClass.Wolf;
wolf.Eat(); //但是-> "I eat like a wolf"

Reflection sample, but still cannot make impossible to possible:

System.Reflection.Assembly r = System.Reflection.Assembly.LoadFrom(@"C:\MyProjects\TEST\Reflection\Reflection\bin\Debug\MyClass.dll");
Type[] ts = r.GetTypes();
foreach (Type t in ts)
{
if (t.Name == "Animal")
{
MyClass.MyClass.Animal animal = new MyClass.MyClass.Wolf();
MyClass.MyClass.Animal wolf = Activator.CreateInstance(t) as MyClass.MyClass.Animal;
wolf.Eat();
Console.ReadLine();
}
}

所有跟帖: 

实际上是要HACK V-TABLE,我也没搞出来,也没资料找 -牛牛哥- 给 牛牛哥 发送悄悄话 牛牛哥 的博客首页 (0 bytes) () 09/14/2009 postreply 19:15:51

请您先登陆,再发跟帖!