Partilhar via


Lista de tipo (Visual Basic)

Especifica os parâmetros de tipo para um elemento de programação Generic.Múltiplos parâmetros são separados por vírgulas.A seguir está a sintaxe de um parâmetro de tipo.

[genericmodifier] typename [ As constraintlist ]

Partes

Termo

Definição

genericmodifier

Opcional.Pode ser usado apenas em delegados e interfaces genéricas.Você pode declarar um tipo covariant usando o Check-Out palavra-chave ou contravariant usando o na palavra-chave.Consulte Covariância e/contravariância (C# e Visual Basic).

typename

Obrigatório.Nome do parâmetro de tipo.Este é um espaço reservado, a ser substituído por um tipo definido fornecido pelo argumento de tipo correspondente.

constraintlist

Opcional.Lista de requisitos que restringe o tipo de dados que pode ser fornecido para typename.Se você tiver várias restrições, coloque-as entre chaves ({ }) e separe-as com vírgulas.Você deve apresentar a lista de restrições com a palavra-chave As.Você usa As somente uma vez, no início da lista.

Comentários

Todo elemento de programação genérico deve receber pelo menso um parâmetro de tipo.Um parâmetro de tipo é um espaço reservado para um tipo específico (um elemento construído )que o código do cliente especifica quando ele cria uma instância do tipo genérico.Você pode definir uma classe, estrutura, Interface, procedimento ou delegado genéricos.

Para obter mais informações sobre quando definir uma tipo genérico, consulte Tipos genéricos em Visual Basic (Visual Basic).Para obter mais informações sobre nomes de parâmetro de tipo, consulte Nomes de elementos declarados (Visual Basic).

Regras

  • Entre parênteses. Se você fornecer uma lista de parâmetros de tipo, coloque-o entre parênteses e você deve introduzir a lista com o de palavra-chave.Você usa Of somente uma vez, no início da lista.

  • Restrições. Uma lista de restrições em um tipo de parâmetro pode incluir os seguintes itens em qualquer combinação:

    • Qualquer número de interfaces.O tipo fornecido deve implementar todas as interfaces nessa lista.

    • No máximo uma classe.O tipo fornecido deve herdar dessa classe.

    • A palavra-chave New.O tipo fornecido deve expor um construtor sem-parâmetros que pode ser acessado pelo seu tipo genérico.Isso é útil se você restringir um parâmetro de tipo por uma ou mais interfaces.Um tipo que implementa interfaces não necessariamente expõe um construtor, e dependendo do nível de acesso de um construtor, o código dentro de tipo genérico pode não poderá acessá-lo.

    • Ou palavra-chave Class ou a palavra-chave Structure.O Class palavra-chave restringe um parâmetro de tipo genérico para exigir que qualquer argumento de tipo passado para ele ser um tipo de referência, por exemplo uma seqüência de caracteres, matriz ou representante, ou um objeto criado a partir de uma classe.O Structure palavra-chave restringe um parâmetro de tipo genérico para exigir que qualquer argumento de tipo passado para ele seja um tipo de valor, por exemplo uma estrutura, enumeração ou dados elementar digite.Não é possível incluir ambos Class e Structure na mesma constraintlist.

    O tipo fornecido deve satisfazer cada requisito que você incluiu na constraintlist.

    Restrições sobre cada parâmetro de tipo são independentes de restrições em outros parâmetros de tipo.

Comportamento

  • Substituição em tempo de compilação. Quando você cria um tipo construído de um elemento de programação genérico, você fornece um tipo definido para cada parâmetro de tipo.O compilador Visual Basic substitui esse tipo fornecido para cada ocorrência de typename dentro do elemento genérico.

  • Ausência de restrições. Se você não especificar quaisquer restrições em um parâmetro de tipo, seu código é limitado para as operações e os membros suportados pelo Tipo de dados Object para esse parâmetro de tipo.

Exemplo

O exemplo a seguir mostra uma definição reduzida de uma classe Dicionário genérica, incluindo uma função reduzida para adicionar uma nova entrada ao dicionário.

Public Class dictionary(Of entryType, keyType As {IComparable, IFormattable, New})
    Public Sub add(ByVal et As entryType, ByVal kt As keyType)
        Dim dk As keyType
        If kt.CompareTo(dk) = 0 Then
        End If
    End Sub
End Class

Porque dictionaryé genérico ,o código que o usa pode criar uma variedade de objetos a partir dele, cada um tendo a mesma funcionalidade mas agindo em um tipo de dados diferente.O exemplo a seguir mostra uma linha de código que cria um objeto dictionary com entradas String e chaves Integer.

Dim dictInt As New dictionary(Of String, Integer)

O exemplo a seguir mostra a definição reduzida equivalente gerada pelo exemplo anterior.

Public Class dictionary
    Public Sub add(ByVal et As String, ByVal kt As Integer)
        Dim dk As Integer
        If kt.CompareTo(dk) = 0 Then
        End If
    End Sub
End Class

Consulte também

Tarefas

Como: usar uma classe genérica (Visual Basic)

Referência

Da cláusula (Visual Basic)

Operador New (Visual Basic)

Tipo de dados Object

Instrução de função (Visual Basic)

Declaração Structure

Instrução Sub (Visual Basic)

Em (modificador genérico) (Visual Basic)

Check-out (modificador genérico) (Visual Basic)

Conceitos

Níveis de acesso em Visual Basic

Outros recursos

Covariância e/contravariância (C# e Visual Basic)