声明父亲,实例儿子的GetType()
- C# code
//类 public class Father { } public class Child1:Father { } public class Child2:Father { }
当声明
Father f1,c1,c2;
f1=new Father();
c1=new Child1();
c2=new Child2();
这三个变量的Type 各是什么,为什么。
望达人解答!
[解决办法]
gettype()是object类一虚方法,获取当前实例的类型.
f1.gettype()==typeof(father);
c1.gettype()==typeof(child1);
c2......
[解决办法]
[解决办法]
GetType()是object类的一个实例方法,不是虚方法
- C# code
[MethodImpl(MethodImplOptions.InternalCall)]public extern Type GetType();
[解决办法]
GetType()方法是非虚方法,为的是防止一个类重写该方法,并隐藏其类型,从而破坏类型安全性。所以一楼在胡扯。
[解决办法]
不会因为c1,c2是Father的引用,而使得GetType也得到Father
比如object obj=5;
GetType会得到int,而不是object
[解决办法]
你可以看看msdn上object类中关于gettype方法的说明,看看它的功能到底是什么就明白了
[解决办法]
[解决办法]
看看~~~
[解决办法]