Overloads (Visual Basic)

Указывает, что свойство или процедура повторно определяет одно или несколько существующих свойств или процедур с таким же именем.

Замечания

Перегрузка — это практика предоставления нескольких определений для заданного имени свойства или процедуры в том же область. Повторное отображение свойства или процедуры с другой подписью иногда называется скрытием сигнатурой.

Правила

  • Контекст объявления. Можно использовать Overloads только в инструкции объявления свойства или процедуры.

  • Объединенные модификаторы. Нельзя указать Overloads вместе с тенями в том же объявлении процедуры.

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

    • число параметров;

    • порядок параметров;

    • типы данных параметров;

    • число параметров типа (для универсальной процедуры);

    • тип возвращаемого значения (только для процедуры оператора преобразования).

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

  • Запрещенные различия. Изменение одного или нескольких из следующих аспектов не является допустимым для перегрузки свойства или процедуры, поскольку они не являются частью сигнатуры:

    • наличие возвращаемого значения (для процедуры);

    • тип данных возвращаемого значения (за исключением оператора преобразования);

    • имена параметров или параметров типа;

    • ограничения для параметров типа (для универсальной процедуры);

    • ключевые слова модификаторов параметров (например, ByRef или Optional);

    • ключевые слова модификаторов свойств или процедур (например, Public или Shared).

  • Необязательный модификатор. При определении нескольких перегруженных свойств или процедур в одном классе не требуется использовать Overloads модификатор. Однако при использовании Overloads в одном из объявлений его необходимо использовать в них всех.

  • Тень и перегрузка. Overloads также можно использовать для тени существующего члена или набора перегруженных элементов в базовом классе. При таком использовании Overloads свойство или метод объявляются с таким же именем и таким же списком параметров, как и у члена базового класса, а ключевое слово Shadows не предоставляется.

При использовании Overrides компилятор неявно добавляет Overloads, чтобы упростить работу API-интерфейсов с библиотекой C#.

Модификатор Overloads можно использовать в следующих контекстах:

См. также