Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Указывает, что свойство или процедура повторно определяет одно или несколько существующих свойств или процедур с таким же именем.
Замечания
Перегрузка — это практика предоставления нескольких определений для заданного имени свойства или процедуры в одной области. Повторное отображение свойства или процедуры с другой подписью иногда называется скрытием сигнатурой.
Правила
Контекст объявления. Можно использовать
Overloadsтолько в инструкции объявления свойства или процедуры.Объединенные модификаторы. Нельзя указать
Overloadsвместе с тенями в том же объявлении процедуры.Обязательные различия. Подпись в этом объявлении должна отличаться от сигнатуры каждого свойства или процедуры, которую она перегружает. Сигнатура включает в себя имя свойства или процедуры, а также следующие элементы:
число параметров;
порядок параметров;
типы данных параметров;
число параметров типа (для универсальной процедуры);
тип возвращаемого значения (только для процедуры оператора преобразования).
Все перегрузки должны иметь одно и то же имя, но каждая должна отличаться от всех остальных по одному или нескольким из предыдущих аспектов. Это позволяет компилятору определить, какую именно версию следует использовать, когда код вызывает свойство или процедуру.
Запрещенные различия. Изменение одного или нескольких из следующих аспектов не является допустимым для перегрузки свойства или процедуры, поскольку они не являются частью сигнатуры:
наличие возвращаемого значения (для процедуры);
тип данных возвращаемого значения (за исключением оператора преобразования);
имена параметров или параметров типа;
ограничения для параметров типа (для универсальной процедуры);
ключевые слова модификаторов параметров (например,
ByRefилиOptional);ключевые слова модификаторов свойств или процедур (например,
PublicилиShared).
Необязательный модификатор. При определении нескольких перегруженных свойств или процедур в одном классе не требуется использовать
Overloadsмодификатор. Однако при использованииOverloadsв одном из объявлений его необходимо использовать в них всех.Тень и перегрузка.
Overloadsтакже можно использовать для тени существующего члена или набора перегруженных элементов в базовом классе. При таком использованииOverloadsсвойство или метод объявляются с таким же именем и таким же списком параметров, как и у члена базового класса, а ключевое словоShadowsне предоставляется.
При использовании Overrides компилятор неявно добавляет Overloads, чтобы упростить работу API-интерфейсов с библиотекой C#.
Модификатор Overloads можно использовать в следующих контекстах: