Мы уже получали тип объекта изучая сборку "Шаг 89 - Изучаем сборку". Функция GetType получает имя класса объекта. Смотрим пример:
using System; class MyClass { } class MainClass { public static void Main(string[] args) { Object o = new Object(); Console.WriteLine(o.GetType()); MyClass m = new MyClass(); Console.WriteLine(m.GetType()); } }
Перегрузить эту функцию нельзя, вся информация необходимая для ее работы создается компилятором. Можно говорить а аналоге информации времени выполнения RTTI. О том как это реализовывалось на С++ читайте "Шаг 47 - Что такое RTTI".