Udostępnij za pośrednictwem


Porady: tworzenie właściwości (Visual Basic)

Należy ująć definicję właściwości między instrukcją Property a instrukcją End Property . W ramach tej definicji zdefiniujesz procedurę, procedurę GetSet lub obie te procedury. Cały kod właściwości znajduje się w tych procedurach.

Procedura Get pobiera wartość właściwości, a Set procedura przechowuje wartość. Jeśli chcesz, aby właściwość miała dostęp do odczytu/zapisu, należy zdefiniować obie procedury. W przypadku właściwości tylko do odczytu należy zdefiniować tylko Getwłaściwość , a dla właściwości tylko do zapisu należy zdefiniować tylko Setwartość .

Aby utworzyć właściwość

  1. Poza dowolną właściwością lub procedurą użyj instrukcji Property, a następnie instrukcji End Property .

  2. Jeśli właściwość przyjmuje parametry, postępuj zgodnie Property ze słowem kluczowym z nazwą procedury, a następnie listę parametrów w nawiasach.

  3. Postępuj zgodnie z nawiasami z klauzulą As , aby określić typ danych wartości właściwości. Należy określić typ danych nawet dla właściwości tylko do zapisu.

  4. W razie potrzeby dodaj Get i Set procedury. Zapoznaj się z poniższymi wskazówkami.

Aby utworzyć procedurę Pobierania, która pobiera wartość właściwości

  1. Między instrukcjami Property i End Property napisz instrukcję Get, a następnie instrukcję End Get . Nie trzeba definiować żadnych parametrów dla Get procedury.

  2. Umieść instrukcje kodu, aby pobrać wartość właściwości między instrukcjami Get i End Get . Ten kod może zawierać inne obliczenia i manipulacje danymi oprócz generowania i zwracania wartości właściwości.

  3. Return Użyj instrukcji , aby zwrócić wartość właściwości do kodu wywołującego.

Należy napisać procedurę Get dla właściwości read-write i dla właściwości tylko do odczytu. Nie można zdefiniować Get procedury dla właściwości tylko do zapisu.

Aby utworzyć procedurę ustawiania, która zapisuje wartość właściwości

  1. Między instrukcjami Property i End Property napisz instrukcję Set, a następnie instrukcję End Set .

  2. W instrukcji Set opcjonalnie postępuj zgodnie Set ze słowem kluczowym z listą parametrów w nawiasach. Jeśli lista parametrów nie jest obecna lub jest pusta, zdefiniowany jest niejawny parametr o nazwie Value , którego typem jest sam typ właściwości. Jeśli lista parametrów nie jest pusta, możesz użyć innej nazwy, jeśli jest to konieczne, ale parametr musi mieć ten sam typ danych co sama właściwość.

  3. Umieść instrukcje kodu, aby przechowywać wartość we właściwości między instrukcjami Set i End Set . Ten kod może zawierać inne obliczenia i manipulacje danymi oprócz sprawdzania poprawności i przechowywania wartości właściwości.

  4. Użyj parametru value, aby zaakceptować wartość dostarczoną przez kod wywołujący. Tę wartość można przechowywać bezpośrednio w instrukcji przypisania lub użyć jej w wyrażeniu, aby obliczyć wartość wewnętrzną do zapisania.

Należy napisać procedurę Set dla właściwości odczytu i zapisu oraz dla właściwości tylko do zapisu. Nie można zdefiniować Set procedury dla właściwości tylko do odczytu.

Przykład

Poniższy przykład tworzy właściwość odczytu/zapisu, która przechowuje pełną nazwę jako dwie nazwy składowe, imię i nazwisko. Podczas odczytywania fullNameGet kodu wywołującego procedura łączy dwie nazwy składników i zwraca pełną nazwę. Gdy kod wywołujący przypisuje nową pełną nazwę, Set procedura próbuje podzielić ją na dwie nazwy składowe. Jeśli miejsce nie zostanie odnalezione, zapisze je jako imię.

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

W poniższym przykładzie przedstawiono typowe wywołania procedur właściwości programu fullName. Pierwsze wywołanie ustawia wartość właściwości, a drugie wywołanie je pobiera.

fullName = "MyFirstName MyLastName"
MsgBox(fullName)

Zobacz też