读书人

声明父亲实例儿子的GetType()解决方

发布时间: 2012-01-19 20:57:58 作者: rapoo

声明父亲,实例儿子的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类一虚方法,获取当前实例的类型.
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方法的说明,看看它的功能到底是什么就明白了
[解决办法]
探讨
GetType()方法是非虚方法,为的是防止一个类重写该方法,并隐藏其类型,从而破坏类型安全性。所以一楼在胡扯。

[解决办法]
看看~~~
[解决办法]
探讨
GetType()方法是非虚方法,为的是防止一个类重写该方法,并隐藏其类型,从而破坏类型安全性。所以一楼在胡扯。

读书人网 >C#

热点推荐