Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
C#_Console.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
1 Мб
Скачать
☆

Лабораторная работа 13: Создание и использование атрибутов Упражнение 1. Использование атрибута Conditional

В этом упражнении Вы поработаете со встроенным атрибутом Conditional, который применяется для условного выполнения Вашего кода.

Этот атрибут может быть полезен при отладке Ваших программ, когда Вы имеете ряд процедур, выдающих отладочную информацию. После отладки программы при компиляции release-версии вызовы ваших отладочных процедур не создаются, хотя сами процедуры компилируются.

В этом задании в класс BankAccount Вы добавите метод DumpToSreen. Этот метод будет отражать информацию о банковском счете. Вы воспользуетесь атрибутом Conditional для выполнения метода в зависимости от значения параметра DEBUG_ACCOUNT.

  • Примените атрибут Conditional

  • Откройте проект Bank.sln из папки install folder\Labs\Lab14\Starter\Bank.

  • В класс BankAccount добавьте public void метод DumpToScreen без параметров.

Метод должен отображать содержимое банковского счета: номер счета, его владельца, тип и баланс. Следующий код показывает пример создания такого метода:

public void DumpToScreen( )

{

Console.WriteLine("Debugging account {0}. Holder is {1}. Type is {2}. Balance is {3}",

this.accNo, this.holder, this.accType, this.accBal);

}

  • Используйте этот метод в зависимости от значения символа DEBUG_ACCOUNT.

Перед методом добавьте следующий атрибут Conditional:

[Conditional("DEBUG_ACCOUNT")]

  • Добавьте директиву using для пространства имен System.Diagnostics.

  • Откомпилируйте проект и исправьте ошибки, если это необходимо.

  • Протестируйте атрибут Conditional

  • Откройте проект TestHarness.sln из папки install folder\Labs\Lab14\Starter\TestHarness.

  • Создайте ссылку на библиотеку Bank.

          • Разверните проект TestHarness в окне Solution Explorer.

  • ПКМ ReferencesAdd Reference.

  • Нажмите на кнопку Browse и перейдите в папку install folder\Labs\Lab14\Starter\Bank\bin\debug.

  • Выделите Bank.dll, а затем нажмите на кнопку Open.

  • Нажмите OK.

  • Просмотрите метод Main класса CreateAccount. Обратите внимание на то, что в нем создается новый банковский счет.

  • В метод Main добавьте следующую строку кода для вызова метода DumpToScreen для myAccount:

myAccount.DumpToScreen( );

  • Сохраните проект, откомпилируйте проект и исправьте ошибки, если это необходимо.

  • Запустите тестовый проект.

Обратите внимание на то, что ничего не происходит, т.к. метод DumpToScreen не был вызван.

Из командной строки запустите утилиту ILDASM для исследования install folder\Labs\Lab14\Starter\Bank\bin\debug\Bank.dll.

Вы увидите, что метод DumpToScreen присутствует в классе BankAccount.

  • Дважды щелкните по DumpToScreen для просмотра MSIL-кода

Вы увидите в начале метода атрибут ConditionalAttribute. Значит ошибка в тестовом приложении. Т.к. для метода DumpToScreen определен атрибут ConditionalAttribute, среда выполнения проигнорирует вызов этого метода, если при компиляции не определен символ DEBUG_ACCOUNT. Вызов метода происходит, но т.к. DEBUG_ACCOUNT не определен, среда выполнения тут же завершает его работу.

  • Закройте ILDASM.

  • Вернитесь в тестовое приложение. В файле CreateAccount.cs перед первой директивой using добавьте следующий код, определяющий символ DEBUG_ACCOUNT:

#define DEBUG_ACCOUNT

  • Сохраните и откомпилируйте тестовое приложение. Исправьте ошибки, если это необходимо.

  • Запустите тестовое приложение.

Обратите внимание на то, что метод DumpToScreen вывел информацию о счете myAccount.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]