Книга: ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
Вызов методов с параметрами
Вызов методов с параметрами
Чтобы показать пример динамического вызова метода, имеющего параметры, предположим, что тип MiniVan определяет метод, который называется TellChildToBeQuiet().
// Усмирение вопящих…
public void TellChildToBeQuiet(string kidName, int shameIntensity) {
for (int i = 0; i ‹ shameIntensity; i++)
MessageBox.Show("Потише, {0}!!", kidName);
}
Метод TellChildToBeQuiet() (приказать ребенку успокоиться) имеет два параметра: строковое представление имени ребенка и целое число, отражающее степень вашего раздражения. При использовании динамического связывания параметры упаковываются в массив объектов System.Object. Для вызова этого нового метода добавьте в свой метод Main() следующий программный код.
// Динамический вызов метода с параметрами.
object[] paramArray = new object[2];
paramArray[0] = "Фред"; // Имя ребенка.
paramArray[1] = 4; // Степень досады.
mi = miniVan.GetMethod("TellChildToBeQuiet");
mi.Invoke(obj, paramArray);
Выполнив эту программу, вы сможете увидеть четыре блока сообщений, отражающих намерение пристыдить юного Фреда. Надеюсь, что к этому моменту нашего обсуждения вы уже можете видеть взаимосвязь между отображением, динамической загрузкой и динамическим связыванием. Для вас еще может оставаться неясным ответ на вопрос, когда следует использовать указанный подход в приложениях. Завершающий раздел этой главы должен пролить на это свет, но пока что следующей темой нашего рассмотрения будет исследование роли атрибутов .NET.
Исходный код. Проект LateBinding размещен в подкаталоге, соответствующем главе 12.
- 19.5.1. Простые эффекты
- Создание обобщенного метода
- Асинхронный вызов методов
- Динамическое связывание
- Конструкторы класса Manager
- Тип класса в C#
- Вызов хранимых процедур InterBase с использованием стандартного синтаксиса ODBC
- Системные вызовы и драйверы устройств
- Множественные интерфейсы и имена методов
- Определение необходимого системного вызова
- Перегрузка методов с несколькими параметрами типа
- Системные вызовы управления процессорной привязкой