次の方法で共有


Get ステートメント

プロパティの値を取得するために使用 Get プロパティ プロシージャを宣言します。

構文

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

部品

任期 定義
attributelist 任意。 属性リストを参照してください
accessmodifier このプロパティの Get ステートメントと Set ステートメントの 1 つ以上では省略可能です。 次のいずれかを指定できます。

- 保護
- 友人
- プライベート
- Protected Friend

Visual Basic のアクセス レベルを参照してください。
statements 任意。 Get プロパティ プロシージャが呼び出されたときに実行される 1 つ以上のステートメント。
End Get 必須。 Get プロパティ プロシージャの定義を終了します。

注釈

プロパティがWriteOnlyマークされていない限り、すべてのプロパティにGetプロパティ プロシージャが必要です。 Get プロシージャは、プロパティの現在の値を返すために使用されます。

Visual Basic は、式がプロパティの値を要求したときに、プロパティの Get プロシージャを自動的に呼び出します。

プロパティ宣言の本文には、Property ステートメントEnd Property ステートメントの間のプロパティのGetプロシージャとSet プロシージャのみを含めることができます。 これらのプロシージャ以外のプロシージャは格納できません。 特に、プロパティの現在の値を格納することはできません。 この値はプロパティの外部に格納する必要があります。これは、いずれかのプロパティ プロシージャ内に格納した場合、他のプロパティ プロシージャはプロパティ プロシージャにアクセスできないためです。 通常の方法では、プロパティと同じレベルで宣言された Private 変数に値を格納します。 Getプロシージャを適用するプロパティ内で定義する必要があります。

Get プロシージャは、Get ステートメントでaccessmodifierを使用しない限り、その包含プロパティのアクセス レベルに既定で設定されます。

準則

  • 混合アクセス レベル。 読み取り/書き込みプロパティを定義する場合は、必要に応じて、 Get または Set プロシージャに別のアクセス レベルを指定できますが、両方を指定することはできません。 これを行う場合、プロシージャのアクセス レベルは、プロパティのアクセス レベルよりも制限が厳しい必要があります。 たとえば、プロパティが Friend宣言されている場合、 Get プロシージャ Private宣言できますが、 Publicは宣言できません。

    ReadOnly プロパティを定義する場合、Get プロシージャはプロパティ全体を表します。 プロパティに 2 つのアクセス レベルが設定されるため、 Getに対して異なるアクセス レベルを宣言することはできません。

  • 戻り値の型。 Property ステートメントは、返される値のデータ型を宣言できます。 Get プロシージャは、そのデータ型を自動的に返します。 任意のデータ型、または列挙型、構造体、クラス、またはインターフェイスの名前を指定できます。

    Property ステートメントでreturntypeが指定されていない場合、プロシージャはObjectを返します。

行動

  • プロシージャから戻ります。 Get プロシージャが呼び出し元のコードに戻ると、プロパティ値を要求したステートメント内で実行が続行されます。

    Get プロパティ プロシージャは、 Return ステートメント を使用するか、プロパティ名に戻り値を割り当てることによって、値を返すことができます。 詳細については、 Function ステートメントの「戻り値」を参照してください。

    Exit PropertyステートメントとReturn ステートメントにより、プロパティ プロシージャがすぐに終了します。 プロシージャ内の任意の数の Exit Property ステートメントと Return ステートメントを使用でき、 Exit Property ステートメントと Return ステートメントを混在させることができます。

  • 戻り値。 Get プロシージャから値を返すには、プロパティ名に値を割り当てるか、Return ステートメントに含めることができます。 Return ステートメントは、Get プロシージャの戻り値を同時に割り当て、プロシージャを終了します。

    プロパティ名に値を割り当てずに Exit Property を使用すると、 Get プロシージャはプロパティのデータ型の既定値を返します。 詳細については、 Function ステートメントの「戻り値」を参照してください。

    次の例は、 quoteForTheDay 読み取り専用プロパティがプライベート変数 quoteValueに保持されている値を返す 2 つの方法を示しています。

    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

こちらも参照ください