* При перепечатке материалов ссылка на www.SeoLiga.ru обязательна!
Перегрузка членов
8 февраля 2009
Благодаря перегрузке удается создать несколько членов с одним и тем же именем, но с разной сигнатурой. Перегрузку чаще всего применяют с методами, С# также позволяет перегружать операторы. На этом занятии вы научитесь создавать пере- груженные члены классов.
Изучив материал этого занятия, вы сможете: ^ создавать перегруженные методы; ^ создавать перегруженные операторы (в С#). Продолжительность занятия - около 15 минут. Вашему классу может потребоваться член, способный принимать разные набо- ры параметров, например: Visual Basic .NET Visual C# public void Display(int DisplayValue) Этот метод прекрасно подходит для решения задач, для которых он предназна- чен. Но что, если этому методу следует передать параметр duration? Или передать в параметре DisplayVaiue строку вместо целого числа? В Visual Basic .NET первая про- блема решается при помощи необязательных параметров, но пользователям С# эта возможность недоступна. Более того, необязательные параметры бесполезны во второй ситуации, когда метод должен принимать аргументы различных типов. В таких случаях и применяют перегрузку — создание нескольких методов с оди- наковыми именами. Перегруженные методы способны возвращать значения оди- наковых типов, разрешается объявлять их с одинаковыми модификаторами досту- па, но сигнатуры перегруженных методов должны отличаться. При вызове перегру- женного метода исполняющая среда проверяет типы переданных аргументов, срав- нивает список аргументов с сигнатурами доступных перегруженных методов, и вы- зывает тот, чья сигнатура совпала со списком аргументов. Если же ни один из пере- груженных методов не принимает указанный набор аргументов, генерируется ошибка. Чаще всего перегрузку применяют с методами, создание перегруженных мето- дов поддерживает и Visual Basic .NET, и С#; последний дополнительно позволяет перегружать операторы, обеспечивая поддержку нестандартной функциональности пользовательских типов данных с операторами.