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