Procedimentos de Propriedade
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 (Declaração Get)ou somente escrita (Declaração Set (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 variáveis e propriedades em Visual Basic.
Sintaxe da Declaração
A propriedade em si é definida por um bloco de código entre declarações Propriedade declaração 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 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
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.O accesslevel no procedimento Get ou Set pode ser qualquer nível que seja mais restritivo do que o nível de acesso especificado para a propriedade em si.Para obter mais informações, consulte Propriedade declaração.
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 misto.
Declaração de parâmetros
Declare cada parâmetro da mesma maneira que faria para Subprocedimentos, 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 de 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: Chamar um procedimento de propriedade
Como: Declarar e telefonar a padrão propriedade in Visual Basic
Como: Colocar um valor em uma propriedade
Como: Obter um valor de uma propriedade