Sobrecargas (Visual Basic)

Especifica que uma propriedade ou procedimento redeclara uma ou mais propriedades ou procedimentos existentes com o mesmo nome.

Comentários

Sobrecarga é a prática de fornecer mais de uma definição para uma determinada propriedade ou nome de procedimento no mesmo escopo. O ato de redeclarar uma propriedade ou procedimento com uma assinatura diferente às vezes é chamado de ocultação por assinatura.

Regras

  • Contexto da declaração. Você só pode usar Overloads em uma instrução de declaração de propriedade ou procedimento.

  • Modificadores combinados. Você não pode especificar Overloads junto com Sombras na mesma declaração de procedimento.

  • Diferenças necessárias. A assinatura nesta declaração deve ser diferente da assinatura de cada propriedade ou procedimento que ela sobrecarrega. A assinatura é composta pelo nome da propriedade ou do procedimento junto com o seguinte:

    • o número de parâmetros

    • a ordem dos parâmetros

    • os tipos de dados dos parâmetros

    • o número de parâmetros de tipo (para um procedimento genérico)

    • o tipo de retorno (somente para um procedimento de operador de conversão)

    Todas as sobrecargas devem ter o mesmo nome, mas cada uma deve ser diferente de todas as outras em um ou mais dos aspectos anteriores. Isso permite que o compilador distingue qual versão usar quando o código chama a propriedade ou o procedimento.

  • Diferenças não permitidas. A alteração de uma ou mais das seguintes opções não é válida para sobrecarregar uma propriedade ou procedimento, pois elas não fazem parte da assinatura:

    • se ele retorna ou não um valor (para um procedimento)

    • o tipo de dados do valor retornado (exceto para um operador de conversão)

    • os nomes dos parâmetros ou dos parâmetros de tipo

    • as restrições nos parâmetros de tipo (para um procedimento genérico)

    • palavras-chave do modificador de parâmetro (como ByRef ou Optional)

    • palavras-chave do modificador de propriedade ou de procedimento (como Public ou Shared)

  • Modificador opcional. Você não precisa usar o modificador Overloads quando estiver definindo várias propriedades ou procedimentos sobrecarregados na mesma classe. No entanto, se você usar Overloads em uma das declarações, deverá usá-la em todas elas.

  • Sombreamento e Sobrecarga. Overloads também pode ser usado para sombrear um membro existente ou conjunto de membros sobrecarregados em uma classe base. Ao usar Overloads dessa maneira, você declara a propriedade ou método com o mesmo nome e a mesma lista de parâmetros do membro da classe base e não fornece a palavra-chave Shadows.

Se você usar Overrides, o compilador adicionará Overloads implicitamente para que as APIs de biblioteca trabalhem com o C# com mais facilidade.

O modificador Overloads pode ser usado nestes contextos:

Confira também