Compartilhar via


ReadOnly (Visual Basic)

Especifica que uma variável ou propriedade pode ser lido mas não gravada.

Comentários

Regras

  • Contexto da Declaração. Você pode usar ReadOnly somente em nível de módulo.Isso significa que o contexto de declaração para um ReadOnly elemento deve ser uma classe, estrutura ou módulo e não pode ser um arquivo de fonte, o namespace ou o procedimento.

  • Modificadores Combinados. Não é possível especificar ReadOnly juntamente com Static na mesma declaração.

  • Atribuindo um valor. Código consumindo um ReadOnly propriedade não é possível conjunto seu valor. Mas o código que tenha acesso ao armazenamento subjacente pode atribuir ou alterar o valor a qualquer momento.

    Você pode atribuir um valor a um ReadOnly variável somente na sua declaração ou no construtor de uma classe ou estrutura em que é definido.

Quando usar uma variável de somente leitura

Há situações em que você não pode usar um Declaração Const (Visual Basic) para declarar e atribuir um valor constante. Por exemplo, a Const demonstrativo não pode aceitar o tipo de dados que você deseja atribuir ou você não poderá calcular o valor no time de compilar com uma expressão de constante. Você pode nem mesmo saiba o valor de time de compilar.Nesses casos, você pode usar um ReadOnly variável para conter um valor constante.

Observação de segurança:

Se o tipo de dados da variável é um tipo de referência, sistema autônomo uma matriz ou uma instância de classe, seus membros podem ser alterados, mesmo se a variável propriamente dito é ReadOnly.O exemplo a seguir ilustra isto:

ReadOnly characterArray() As Char = {"x"c, "y"c, "z"c}

Sub changeArrayElement()

characterArray(1) = "M"c

End Sub

Quando inicializado, o array apontada por characterArray()suspensões "x", "y" e "z". Porque a variável characterArray é ReadOnly, você não pode alterar seu valor depois que ele é inicializado; ou seja, não é possível atribuir uma nova matriz a ele. No entanto, você pode alterar os valores de um ou mais dos membros da matriz.Após uma telefonar para o procedimento changeArrayElement, a matriz apontada por characterArray()suspensões "x", "M" e "z".

Observe que isso é semelhante ao declarar um parâmetro de procedimento a ser ByVal, que impede o procedimento de alterar o próprio argumento chamado mas permite-a para alterar seus membros.

Exemplo

O exemplo a seguir define um ReadOnly propriedade para a data em que um funcionário foi contratado. A classe armazena o valor da propriedade internamente sistema autônomo um Private variável e somente o código dentro da classe podem alterar esse valor. No entanto, a propriedade é Public, e qualquer código que pode acessar a classe pode ler a propriedade.

Class employee
    ' Only code inside class employee can change the value of hireDateValue.
    Private hireDateValue As Date
    ' Any code that can access class employee can read property dateHired.
    Public ReadOnly Property dateHired() As Date
        Get
            Return hireDateValue
        End Get
    End Property
End Class

O modificador ReadOnly pode ser utilizado nestes contextos:

Esmaecer declaração

Propriedade declaração

Consulte também

Referência

Somente-leitura

Palavras-chave Linguagem Visual Basic