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


Практическое руководство. Создание свойства (Visual Basic)

Определение свойства заключено между оператором Property и оператором End Property . В этом определении вы определяете процедуру Get , Set процедуру или оба. Весь код свойства лежит в этих процедурах.

Процедура Get извлекает значение свойства, а Set процедура сохраняет значение. Если свойство должно иметь доступ на чтение и запись, необходимо определить обе процедуры. Для свойства только для чтения определяется только Getсвойство, а для свойства только для записи определяется только Set.

Создание свойства

  1. За пределами любого свойства или процедуры используйте оператор property, за которым следует End Property инструкция.

  2. Если свойство принимает параметры, следуйте Property ключевое слово с именем процедуры, а затем список параметров в скобках.

  3. Следуйте скобкам с предложением As , чтобы указать тип данных значения свойства. Необходимо указать тип данных даже для свойства только для записи.

  4. Добавьте Get и Set процедуры в соответствии с соответствующими параметрами. См. следующие инструкции.

Создание процедуры Get, извлекающей значение свойства

  1. PropertyEnd Property Между операторами и напишите инструкцию Get, за которой следует End Get оператор. Вам не нужно определять параметры для Get процедуры.

  2. Поместите инструкции кода, чтобы получить значение свойства между Get операторами и End Get операторами. Этот код может включать другие вычисления и манипуляции с данными в дополнение к созданию и возврату значения свойства.

  3. Используйте инструкцию Return , чтобы вернуть значение свойства в вызывающий код.

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

Создание процедуры Set, которая записывает значение свойства

  1. PropertyEnd Property Между операторами и напишите инструкцию Set, за которой следует End Set оператор.

  2. Set В инструкции при необходимости следуйте Set ключевое слово со списком параметров в скобках. Если список параметров отсутствует или пуст, то определяется неявный параметр Value , тип которого является типом самого свойства. Если список параметров не пуст, можно использовать другое имя, но параметр должен иметь тот же тип данных, что и само свойство.

  3. Поместите инструкции кода для хранения значения в свойстве между Set операторами и End Set операторами. Этот код может включать другие вычисления и манипуляции с данными в дополнение к проверке и хранению значения свойства.

  4. Используйте параметр значения, чтобы принять значение, предоставленное вызывающим кодом. Вы можете сохранить это значение непосредственно в инструкции назначения или использовать его в выражении для вычисления внутреннего значения, которое будет храниться.

Необходимо написать процедуру Set для свойства записи для чтения и записи только для записи. Не следует определять процедуру Set для свойства только для чтения.

Пример

В следующем примере создается свойство чтения и записи, которое сохраняет полное имя в виде двух составных имен, имени и фамилии. При чтении fullNameGet вызывающего кода процедура объединяет два составляющих имена и возвращает полное имя. Когда вызывающий код назначает новое полное имя, Set процедура пытается разбить ее на два составных имени. Если он не находит пробел, он сохраняет все это как первое имя.

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

В следующем примере показаны типичные вызовы процедур fullNameсвойств. Первый вызов задает значение свойства, а второй вызов извлекает его.

fullName = "MyFirstName MyLastName"
MsgBox(fullName)

См. также