Procedimentos de propriedade (Visual Basic)
Um procedimento de propriedade é uma série de declarações Visual Basic que manipulam uma propriedade personalizada em um módulo, classe ou estrutura. Procedimentos de propriedade são também conhecidos como acessadores de propriedade .
Visual Basic fornece os seguintes procedimento de propriedade:
Um procedimentoGet retorna o valor de uma propriedade. Ele é chamado quando você acessa a propriedade em uma expressão.
Um procedimento Set define um valor para uma propriedade, incluindo uma referência de objeto. Ele é chamado quando você atribui um valor à propriedade.
Você geralmente define procedimentos de propriedade aos pares, usando as declarações Get e Set , mas você pode também ainda definir um procedimento sozinho se a propriedade é somente leitura (Instrução Get)ou somente escrita (Instrução Set (Visual Basic)) .
Você pode omitir o procedimento de Get e de Set ao usar uma propriedade automática implementado. Para obter mais informações, consulte Propriedades autoimplementadas (Visual Basic).
Você pode definir propriedades em classes, estruturas e módulos. As propriedades são Public por padrão, o que significa que você pode chamá-las de qualquer lugar no seu aplicativo que possa acessar o recipiente da propriedade.
Para uma comparação entre propriedades e variáveis, consulte Diferenças entre propriedades e variáveis no Visual Basic.
Sintaxe da Declaração
A propriedade em si é definida por um bloco de código entre declarações Instrução Property e End Property. Dentro deste bloco, cada procedimento de propriedade aparece como um bloco interno envolto em uma instrução de declaração (Get ou Set)e a declaração End correspondente.
A sintaxe para declarar uma propriedade e seus procedimentos é da seguinte maneira:
[Default] [Modifiers] Property PropertyName[(ParameterList)] [As DataType]
[AccessLevel] Get
' Statements of the Get procedure.
' The following statement returns an expression as the property's value.
Return Expression
End Get
[AccessLevel] Set[(ByVal NewValue As DataType)]
' Statements of the Set procedure.
' The following statement assigns newvalue as the property's value.
LValue = NewValue
End Set
End Property
- or -
[Default] [Modifiers] Property PropertyName [(ParameterList)] [As DataType]
Os Modifiers podem especificar o nível de acesso e informações sobre a sobrecarga, substituindo, compartilhando e sombreando, bem como se a propriedade é somente leitura ou somente escrita. AccessLevel no procedimento de Get ou de Set pode ser qualquer nível que seja mais restritivo do que o nível de acesso especificado para a propriedade. Para obter mais informações, consulte Instrução Property.
Tipo de dados
Um tipo de dados de propriedade e do nível de acesso principal são definidos na declaraçãoProperty , não nos procedimentos de propriedade. Uma propriedade pode ter apenas um tipo de dados. Por exemplo, você não pode definir uma propriedade para armazenar um valor Decimal mas recuperar um valor Double.
Nível de Acesso
No entanto, você pode definir um nível de acesso principal para a propriedade e restringir o nível de acesso em um dos seus procedimentos de propriedade. Por exemplo, você pode definir uma propriedade Public e, em seguida, definir um procedimentoPrivate Set . O procedimento Get permanece Public. Você pode alterar o nível de acesso em apenas um dos procedimentos de uma propriedade, e você pode apenas fazê-lo mais restritivo do que o nível de acesso principal. Para obter mais informações, consulte Como declarar uma propriedade com níveis de acesso mistos (Visual Basic).
Declaração de parâmetros
Declare cada parâmetro da mesma maneira que faria para Subprocedimentos (Visual Basic), exceto pelo fato de que o mecanismo de passagem deve ser ByVal.
A sintaxe para cada parâmetro na lista de parâmetros é como se segue:
[Optional] ByVal [ParamArray] parametername As datatype
Se o parâmetro é opcional, você deve também fornecer um valor padrão como parte de sua declaração. A sintaxe para especificar um valor padrão é como se segue:
Optional ByVal parametername As datatype = defaultvalue
Valor da propriedade
Em um procedimento Get , o valor de retorno é fornecido para a expressão de chamada como o valor da propriedade.
Em um procedimento Set , o novo valor da propriedade é passado para o parâmetro da declaração Set. Se você declarar explicitamente um parâmetro, você deve declará-lo com o mesmo tipo de dados da propriedade. Se você não declarar um parâmetro, o compilador usa o parâmetro implícito Value para representar o novo valor a ser atribuído à propriedade.
Sintaxe de Chamada
Você chama um procedimento de propriedade implicitamente fazendo referência à propriedade. Você usa o nome da propriedade da mesma forma que usaria o nome de uma variável, exceto pelo fato de que você deve fornecer valores para todos os argumentos que são não opcionais, e você deve colocar a lista de argumentos entre parênteses. Se nenhum argumento é fornecido, você pode, opcionalmente, omitir os parênteses.
A sintaxe para chamar impicitamente um procedimento Set é da seguinte maneira:
propertyname[(argumentlist)] = expression
A sintaxe para chamar impicitamente um procedimento Get é da seguinte maneira:
lvalue = propertyname[(argumentlist)]
Do While (propertyname[(argumentlist)] > expression)
Ilustração de Declaração e Chamada
A propriedade a seguir armazena um nome completo como dois nomes constituintes, o primeiro nome e o sobrenome. Quando o código de chamada lê fullName, o procedimento Get combina as duas partes e retorna o nome completo. Quando o código de chamada atribui um novo nome completo, o procedimento Set tenta dividi-lo em duas partes. Se ele não achar um espaço, armazena o nome completo apenas como o primeiro nome.
Dim firstName, lastName As String
Property fullName() As String
Get
If lastName = "" Then
Return firstName
Else
Return firstName & " " & lastName
End If
End Get
Set(ByVal Value As String)
Dim space As Integer = Value.IndexOf(" ")
If space < 0 Then
firstName = Value
lastName = ""
Else
firstName = Value.Substring(0, space)
lastName = Value.Substring(space + 1)
End If
End Set
End Property
O seguinte exemplo mostra chamadas típicas para os procedimentos de propriedade do fullName
fullName = "MyFirstName MyLastName"
MsgBox(fullName)
Consulte também
Tarefas
Como criar uma propriedade (Visual Basic)
Como chamar um procedimento de propriedade (Visual Basic)
Como declarar e chamar uma propriedade padrão no Visual Basic
Como inserir um valor em uma propriedade (Visual Basic)
Como obter um valor a partir de uma propriedade (Visual Basic)
Conceitos
Procedimentos de função (Visual Basic)
Procedimentos do operador (Visual Basic)