Введение в рефлексию C#
Обычный вызов метода возможен, потому что имя класса написано в исходнике. Рефлексия нужна, когда имени ещё нет: плагин, сериализатор или инструмент узнают тип уже при запуске.
У типа можно прочитать имя, базовый класс, список свойств и методов. Можно создать объект и вызвать член, не написав обычный вызов в коде. Сведения о типе программа получает из самой сборки, а не из комментария рядом с классом.
Это медленнее прямого вызова и легко ошибается в строковом имени. Рефлексию берут там, где набор типов заранее неизвестен. Для обычной логики программы достаточно обычного вызова.