Tuesday, 16 October 2012

What is the difference between GetType() and typeof?

Trivially, whereas GetType operates on an object, typeof operates on a type. But, notice that GetType returns the underlying type of the object which can be different from the type of the reference to the object.

For instance:

class BaseClass {}
class DerivedClass: BaseClass {}
class Example
   static void RevealType (BaseClass baseClass)
      Console.WriteLine (typeof(BaseClass));
      Console.WriteLine (baseClass.GetType());
   static void Main()
      RevealType (new DerivedClass());
gives the following output:

 Example output (program output)
BaseClass DerivedClass
Post a Comment