声明父亲,实例儿子的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方法的说明,看看它的功能到底是什么就明白了
------解决方案--------------------
------解决方案--------------------
看看~~~
------解决方案--------------------