Генерирование метода HelloWorld()

Генерирование метода HelloWorld()

Наконец, рассмотрим задачу генерирования метода SayHello(). Первой задачей здесь оказывается получение типа MethodBuilder из переменной helloWorld-Class. После этого определяется указанный метод и получается ILGenerator, позволяющий добавить соответствующие CIL-инструкции.

// Создание метода SayHello.

MethodBuilder sayHiMethod = helloWorldClass.DefineMethod("SayHello", MethodAttributes.Public, null, null);

methodIL = sayHiMethod.GetILGenerator();

// Вывод на консоль.

methodIL.EmitWriteLine("Всем привет!");

methodIL.Emit(Opcodes.Ret);

Здесь создается открытый метод (MethodAttributes.Public), не имеющий параметров и не возвращающий ничего (на это указывают значения null в вызове DefineMethod()). Также обратите внимание на вызов EmitWriteLine(). Этот вспомогательный член класса ILGenerator автоматически записывает строку в стандартный поток вывода.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Вариации метода Main()

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

Вариации метода Main() Предыдущий вариант Main() был определен с одним параметром (массивом строк) и возвращал данные типа int. Однако это не единственно возможная форма Main(). Для построения точки входа приложения можно использовать любую из следующих сигнатур (в предположении,


Генерирование вторичных исключений

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

Генерирование вторичных исключений Вы должны знать, что в рамках логики try имеется возможность генерировать исключение для вызывающей стороны, находящейся выше по цепочке вызовов в стеке вызовов. Для этого просто используйте ключевое слово throw в рамках блока сatch. Тем


Генерирование HTML-содержимого

Из книги Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT автора Фролов Александр Вячеславович

Генерирование HTML-содержимого Пожалуй, самой известной сферой применения типа HttpResponse является запись содержимого непосредственно в выходной поток HTTP. Метод HttpResponse. Write() позволяет передать HTML-дескрипторы, или вообще любые строковые литералы. Метод HttpResponse.WriteFile() расширяет


Реализация Web-метода TellFortune()

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

Реализация Web-метода TellFortune() Ваш Web-сервис XML MagicEightBall будет имитировать классическую говорящую игрушку, сообщающую предсказания. Для этого добавьте в класс Service следующий метод (существующий Web-метод HelloWorld() можно удалить).[WebMethod]public string TellFortune(string вопросПользователя) { string[]


12.5.3. Генерирование сертификатов

Из книги Системное программирование в среде Windows автора Харт Джонсон М

12.5.3. Генерирование сертификатов Сертификат гарантирует безопасное подключение к Web-серверам и (или) удостоверяет личность владельца. Идентификация обеспечивается путем применения личного ключа, известного только пользователю данной системы. Когда пользователь


10.6. Выбор метода

Из книги Программирование на языке Ruby [Идеология языка, теория и практика применения] автора Фултон Хэл

10.6. Выбор метода Выше последовательно были рассмотрены системные и пользовательские файлы конфигурации, переменные окружения и аргументы командной строки — направление от конфигурации, которую изменить сложнее, к конфигурации, изменяемой проще. Имеется четкое


Добавление к классу нового метода

Из книги C++. Сборник рецептов автора Диггинс Кристофер

Добавление к классу нового метода Чтобы добавить в класс новый метод, выберите из временного меню строку Add Function. На экране появится диалоговая панель Add Member Function, представленная на рисунке 2.15. Рис. 2.15. Диалоговая панель Add Member FunctionВ поле Function Type следует ввести тип значения,


10.6. Выбор метода

Из книги Linux: Полное руководство автора Колисниченко Денис Николаевич

10.6. Выбор метода Выше последовательно были рассмотрены системные и пользовательские файлы конфигурации, переменные окружения и аргументы командной строки — направление от конфигурации, которую изменить сложнее, к конфигурации, изменяемой проще. Имеется четкое


Ограничения метода отображения файлов

Из книги Linux и UNIX: программирование в shell. Руководство разработчика. автора Тейнсли Дэвид

Ограничения метода отображения файлов Как уже отмечалось ранее, отображение файлов является весьма мощным и полезным средством. Существующая в Windows диспропорция между 64-битовой файловой системой и 32-битовой адресацией снижает ценность обеспечиваемых этим средством


5.28. Генерирование случайных чисел

Из книги автора

5.28. Генерирование случайных чисел Если вас устраивают псевдослучайные числа, вам повезло. Именно они предоставляются в большинстве языков, включая и Ruby.Метод rand из модуля Kernel возвращает псевдослучайное число x с плавающей точкой, отвечающее условиям x >= 0.0 и x < 1.0.


10.1.16. Применение метода readpartial

Из книги автора

10.1.16. Применение метода readpartial Метод readpartial появился сравнительно недавно с целью упростить ввод/вывод при определенных условиях. Он может использоваться с любыми потоками, например с сокетами.Параметр «максимальная длина» (max length) обязателен. Если задан параметр buffer, то


8.12. Написание шаблона метода класса

Из книги автора

8.12. Написание шаблона метода класса ПроблемаИмеется один метод, который должен принимать параметр любого типа, и невозможно ограничиться каким-либо одним типом или категорией типов (используя указатель на базовый класс).РешениеИспользуйте шаблон метода и объявите


16.10.3. Генерирование сертификатов

Из книги автора

16.10.3. Генерирование сертификатов Сертификат гарантирует безопасное подключение к веб-серверам и/или удостоверяет личность владельца. Идентификация обеспечивается путем применения личного ключа, известного только пользователю данной системы. Когда пользователь