Книга: ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание

Вызов методов без параметров

Вызов методов без параметров

Предположим, что нам нужно вызвать метод TurboBoost() типа MiniVan. Вы помните, что этот метод приводит двигатель в "абсолютно нерабочее" состояние и генерирует появление информационного блока сообщения. Первым нашим шагом должно быть получение типа MethodInfо для метода TurboBoost() с помощью Type.GetMethod(). Получив MethodInfo, мы сможем вызвать Minivan.TurboBoost() с помощью Invoke(). Для MethodInfo.Invoke() необходимо указать все параметры, которые должны быть переданы методу, представленному с помощью MethodInfo. Эти параметры представляются массивом System.Object (поскольку метод может иметь любое число параметров любого типа).

Наш метод TurboBoost() не имеет параметров, поэтому для него указывается null (в данном случае это и означает отсутствие параметров у метода). Модифицируйте метод Main() так.

static void Main(string[] args) {
 // Попытка загрузить локальную копию CarLibrary.
 ...
 // Получение типа MiniVan.
 Type miтiVan = a.GetType("CarLibrary.MiniVan");
 // Динамическое создание MiniVan.
 object obj = Activator.CreateInstance(miniVan);
 // Получение информации о TurboBoost.
 MethodInfo mi = miniVan.GetMethod("TurboBoost");
 // Вызов метода ('null' означает отсутствие параметров) .
 mi.Invoke(obj, null);
}

После этого вы сможете лицезреть сообщение, подобное показанному на рис. 12.5.


Рис. 12.5. Вызов метода в условиях динамической привязки

Оглавление книги


Генерация: 1.337. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз