Поделиться через


Оператор Get

Обновлен: Ноябрь 2007

Объявляет процедуру свойства Get, которая используется для извлечения значения свойства.

[ <attributelist> ] [ accessmodifier ] Get()
    [ statements ]
End Get

Компоненты

  • attributelist
    Необязательный. См. Список атрибутов.

  • accessmodifier
    Необязателен для не более одного из операторов Get и Set в этом свойстве. Может быть одним из следующих.

    См. Уровни доступа в Visual Basic.

  • statements
    Необязательный. Один или несколько операторов, которые выполняются при вызове процедуры свойства Get.

  • End Get
    Обязательный. Завершает определение процедуры свойства Get.

Заметки

Каждое свойство должно иметь Get процедуру свойства, если только свойство не помечено как WriteOnly. Процедура Get используется для возвращения текущего значения свойства.

Visual Basic автоматически вызывает процедуру свойства Get, когда выражение запрашивает значение свойства.

Тело объявления свойства может содержать только процедуры Get и Set свойства между оператором Оператор Property и End Property. Оно не может хранить что-либо кроме этих процедур. В частности, оно не может хранить текущее значение свойства. Это значение следует хранить за пределами свойства, так как если хранить его внутри любой из процедур свойства, другая процедура свойства не сможет получить к нему доступ. Обычным подходом является хранение значения в переменной Private (Visual Basic), объявленной на том же уровне, что и свойство. Процедуру Get необходимо определить внутри свойства, к которому оно применимо.

Процедура Get имеет уровень доступа к свойству, в котором содержится, по умолчанию, если не используется инструкция accessmodifier в операторе Get.

Правила

  • Смешанные уровни доступа. При определении свойства для чтения и записи можно указать другой уровень доступа для процедур Get или Set, но не для обеих. При этом уровень доступа процедуры должен быть более строгими, чем уровень доступа свойства. Например, если свойство объявлено Friend, можно объявить процедуру Get как Private, но не Public.

    При определении свойства ReadOnly, процедура Get представляет все свойство. Нельзя объявлять другой уровень доступа для Get, поскольку, будет установлено два уровня доступа для свойства.

  • Возвращаемый тип. При помощи Оператор Property можно объявлять тип данных возвращаемого значения. Процедура Get автоматически возвращает этот тип данных. Можно указать любой тип данных или имя перечисления, структуру, класс или интерфейс.

    Если в операторе Property не указан returntype, процедура возвращает Object.

Поведение

  • Возвращение из процедуры. Когда процедура Get возвращается в код вызова, выполнение продолжается в операторе, запросившем значение свойства.

    Процедуры свойства Get могут возвращать значение, используя либо Оператор Return (Visual Basic), или присваивая возвращаемое значение имени свойства. Дополнительные сведения см. в разделе "Возвращаемое значение" Оператор Function (Visual Basic).

    Операторы Exit Property и Return вызывают немедленный выход из процедуры свойства. В любом месте процедуры можно использовать любое количество операторов Exit Property и Return, кроме того операторы Exit Property и Return можно комбинировать.

  • Возвращаемое значение. Для возвращения значения из процедуры Get можно присвоить значение имени свойства или включить его в Оператор Return (Visual Basic). Оператор Return одновременно назначает возвращаемое значение Get и выходит из процедуры.

    При использовании Exit Property без присвоения значения имени свойства, процедура Get возвращает значение типа данных свойства по умолчанию. Дополнительные сведения см. в разделе "Возвращаемое значение" Оператор Function (Visual Basic).

    В следующем примере показано два способа возвращения значения для свойства quoteForTheDay, доступного только для чтения, значение содержится в частной переменной quoteValue.

    Private quoteValue As String = "No quote assigned yet."
    
    ReadOnly Property quoteForTheDay() As String
        Get
            quoteForTheDay = quoteValue
            Exit Property
        End Get
    End Property
    
    ReadOnly Property quoteForTheDay() As String
        Get
            Return quoteValue
        End Get
    End Property
    

Пример

В следующем примере используется оператор Get для возвращения значения свойства.

Class propClass
    ' Define a private local variable to store the property value.
    Private currentTime As String
    ' Define the read-only property.
    Public ReadOnly Property dateAndTime() As String
        Get
            ' The Get procedure is called automatically when the
            ' value of the property is retrieved.
            currentTime = CStr(Now)
            ' Return the date and time As a string.
            Return currentTime
        End Get
    End Property
End Class

См. также

Задачи

Практическое руководство. Добавление полей и свойств в класс

Ссылки

Инструкция Set (Visual Basic)

Оператор Property

Оператор Exit (Visual Basic)