【发布时间】:2011-03-16 06:19:46
【问题描述】:
取自 MSDN 的代码示例
public class Test {
public static void Main() {
MyBaseClass myBase = new MyBaseClass();
MyDerivedClass myDerived = new MyDerivedClass();
object o = myDerived;
MyBaseClass b = myDerived;
Console.WriteLine("mybase: Type is {0}", myBase.GetType());
Console.WriteLine("myDerived: Type is {0}", myDerived.GetType());
Console.WriteLine("object o = myDerived: Type is {0}", o.GetType());
Console.WriteLine("MyBaseClass b = myDerived: Type is {0}", b.GetType()); }}
/*
This code produces the following output.
mybase: Type is MyBaseClass
myDerived: Type is MyDerivedClass
object o = myDerived: Type is MyDerivedClass
MyBaseClass b = myDerived: Type is MyDerivedClass
*/
那么让 GetType() 虚拟化是否合乎逻辑,至少它可以像虚拟一样工作?谁能解释一下? 和其他问题 NET 框架中是否还有其他具有类似 GetType 行为的方法?
【问题讨论】:
标签: c# .net architecture