|
Pay = currPay;
ssn= ssn;
}
В результате был неявно создан довольно неэффективный конструктор, учитывая тот факт, что в С#, если не указать иного, конструктор базового класса вызывается автоматически перед выполнением логики производного конструктора. После этого момента текущая реализация имеет доступ к многочисленным public -свойствам базового класса Employee для установки его состояния.
Для оптимизации создания производного класса необходимо хорошо реализовать конструкторы подкласса, чтобы они явно вызывали специальный конструктор базового класса вместо конструктора по умолчанию. Поступая подобным образом, можно сократить количество вызовов инициализаций унаследованных членов (что уменьшит время обработки). Модифицируем специальный конструктор класса Manager, применив ключевое слово base:
(этот код вставляем в проект EmployeeExample, класс Manager)
Задание!!!: протестировать, исправить возможные ошибки
Здесь ключевое слово base ссылается на сигнатуру конструктора (подобно синтаксису, используемому для сцепления конструкторов на единственном классе с использованием ключевого слова this), что всегда указывает на то, что производный конструктор передает данные конструктору непосредственного родителя. В данной ситуации явно вызывается конструктор с четырьмя параметрами, определенный в Employee, что избавляет от излишних вызовов во время создания экземпляра базового класса.
Задание!!! Реализовать аналогичным образом специальный конструктор для класса SalesPerson.
Важно!!! Ключевое слово base можно использовать везде, где подкласс желает обратиться к общедоступному или защищенному члену, определенному в родительском классе.
Дата добавления: 2015-07-25; просмотров: 67 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Статические конструкторы | | | Ключевое слово sealed |