Instrução Sub (Visual Basic)

Declares the name, parameters, and code that define a Sub procedure.

[ <attributelist> ] [ Partial ] [ accessmodifier ] [ proceduremodifiers ] [ Shared ] [ Shadows ] 
Sub name [ (Of typeparamlist) ] [ (parameterlist) ] [ Implements implementslist | Handles eventlist ]
    [ statements ]
    [ Exit Sub ]
    [ statements ]
End Sub

Parts

Term

Definition

attributelist

Optional. See Attribute List.

Partial

Optional. Indica a definição de ummétodode parcial. See Métodos parciais (Visual Basic).

accessmodifier

Optional. Can be one of the following:

See Níveis de acesso em Visual Basic.

proceduremodifiers

Optional. Can be one of the following:

Shared

Optional. See Shared.

Shadows

Optional. See Shadows.

name

Required. Name of the procedure. See Nomes de elementos declarados (Visual Basic). Para criar umprocedimento do construtorpara uma classe, definir o nome de um Suboprocedimento para o Newpalavra-chave. For more information, see Vida útil de objeto: Como os objetos são criados e destruídos (Visual Basic).

typeparamlist

Optional. List of type parameters for a generic procedure. See Type List.

parameterlist

Optional. List of local variable names representing the parameters of this procedure. See Lista de parâmetros (Visual Basic).

Implements

Optional. Indicates that this procedure implements one or more Sub procedures, each one defined in an interface implemented by this procedure's containing class or structure. See Implementa Declaração.

implementslist

Required if Implements is supplied. List of Sub procedures being implemented.

implementedprocedure [ , implementedprocedure ... ]

Each implementedprocedure has the following syntax and parts:

interface.definedname

PartDescription
interface Required.Name of an interface implemented by this procedure's containing class or structure.
definedname Required.Name by which the procedure is defined in interface.

Handles

Optional. Indicates that this procedure can handle one or more specific events. See Cláusula Handles (Visual Basic).

eventlist

Required if Handles is supplied. List of events this procedure handles.

eventspecifier [ , eventspecifier ... ]

Each eventspecifier has the following syntax and parts:

eventvariable.event

PartDescription
eventvariable Required.Object variable declared with the data type of the class or structure that raises the event.
event Required.Name of the event this procedure handles.

statements

Optional. Bloco de instruções para executar este procedimento.

End Sub

Terminates the definition of this procedure.

Comentários

All executable code must be inside a procedure. Use um Sub procedimento quando você não precisa retornar um valor para o código de chamada. Use um Function procedimento quando precisar retornar um valor.

Você pode usar Sub somente no nível de módulo . Isso significa que o dedeclaraçãocontexto para uma sub-rotina procedimento deve ser uma classe, estrutura, móduloou interfacee não pode ser um arquivo de fonte , namespace, procedimentoou bloco. For more information, see Contextos de declaração e níveis de acesso padrão (Visual Basic).

Sub procedures default to public access. You can adjust their access levels with the access modifiers.

Rules

  • Implementação. Se este procedimento usa o Implementspalavra-chave, o que contém uma classe ou estrutura deve ter um Implementsademonstrativo imediatamente seguinte sua Class ou Structuredemonstrativo. The Implements statement must include each interface specified in implementslist. However, the name by which an interface defines the Sub (in definedname) does not have to be the same as the name of this procedure (in name).

Behavior

  • Returning from a Procedure. Quando o Sub procedimento retorna para o código de chamada, a execução continua com a demonstrativo após a demonstrativo que chamou.

    The Exit Sub and Return statements cause an immediate exit from a Sub procedure. Any number of Exit Sub and Return statements can appear anywhere in the procedure, and you can mix Exit Sub and Return statements.

    O exemplo a seguir mostra um retorno de um Sub procedimento.

    Sub mySub(ByVal q As String)
        Return
    End Sub 
    
  • Chamar um procedimento. A Sub procedimento, como um Function procedimento, é um separado procedimento que pode aceitar parâmetros e executar uma série de instruções. No entanto, diferentemente de um Function procedimento, que retorna um valor, um Sub procedimento não pode ser usado em uma expressão.

    Você chamar um Sub procedimento usando o nome do procedimento , seguido da lista de argumento entre parênteses, em uma demonstrativo. You can omit the parentheses only if you are not supplying any arguments. However, your code is more readable if you always include the parentheses.

    Opcionalmente, você pode usar o Calldedemonstrativo para chamar um Subprocedimento. Isso pode melhorar a legibilidade do código.

Troubleshooting

Order of Execution. Visual Basic sometimes rearranges arithmetic expressions to increase internal efficiency. Por esse motivo, se a lista de argumento contém expressões que chamam outros procedimentos, você não pode confiar neles sendo chamado em uma ordem específica.

Exemplo

O exemplo a seguir usa a Subdedemonstrativo para definir o nome, parâmetros e o código desse formulário no corpo de um Subprocedimento.

Sub computeArea(ByVal length As Double, ByVal width As Double)
    ' Declare local variable.
    Dim area As Double
    If length = 0 Or width = 0 Then
        ' If either argument = 0 then exit Sub immediately.
        Exit Sub
    End If
    ' Calculate area of rectangle.
    area = length * width
    ' Print area to Immediate window.
    Debug.WriteLine(area)
End Sub

Consulte também

Tarefas

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

Solucionando problemas de procedimentos (Visual Basic)

Como: Criar um método parcial (Visual Basic)

Referência

Implementa Declaração

Instrução Function (Visual Basic)

Lista de parâmetros (Visual Basic)

Instrução Dim (Visual Basic)

Instrução Call (Visual Basic)

Cláusula Of (Visual Basic)

Conceitos

Matrizes de parâmetros (Visual Basic)

Métodos parciais (Visual Basic)