Property StatementProperty Statement

プロパティ、および格納し、プロパティの値を取得するために使用するプロパティ プロシージャの名前を宣言します。Declares the name of a property, and the property procedures used to store and retrieve the value of the property.

構文Syntax

[ <attributelist> ] [ Default ] [ accessmodifier ]
[ propertymodifiers ] [ Shared ] [ Shadows ] [ ReadOnly | WriteOnly ] [ Iterator ]
Property name ( [ parameterlist ] ) [ As returntype ] [ Implements implementslist ]
    [ <attributelist> ] [ accessmodifier ] Get
        [ statements ]
    End Get
    [ <attributelist> ] [ accessmodifier ] Set ( ByVal value As returntype [, parameterlist ] )
        [ statements ]
    End Set
End Property
- or -
[ <attributelist> ] [ Default ] [ accessmodifier ]
[ propertymodifiers ] [ Shared ] [ Shadows ] [ ReadOnly | WriteOnly ]
Property name ( [ parameterlist ] ) [ As returntype ] [ Implements implementslist ]

指定項目Parts

  • attributelist

    省略可能です。Optional. このプロパティに適用される属性の一覧またはGetまたはSetプロシージャ。List of attributes that apply to this property or Get or Set procedure. 参照してください属性リストします。See Attribute List.

  • Default

    省略可能です。Optional. このプロパティは、クラスまたは構造体が定義されている既定のプロパティを指定します。Specifies that this property is the default property for the class or structure on which it is defined. 既定のプロパティのパラメーターを受け入れる必要がありますと設定し、取得できるプロパティの名前を指定せず。Default properties must accept parameters and can be set and retrieved without specifying the property name. としてプロパティを宣言する場合Default、使用することはできませんPrivateプロパティまたはプロパティ プロシージャのいずれか。If you declare the property as Default, you cannot use Private on the property or on either of its property procedures.

  • accessmodifier

    省略可能なPropertyステートメントの 1 つだけで、GetSetステートメント。Optional on the Property statement and on at most one of the Get and Set statements. 次のいずれかの値を指定します。Can be one of the following:

    Visual Basic でのアクセス レベル」を参照してください。See Access levels in Visual Basic.

  • propertymodifiers

    省略可能です。Optional. 次のいずれかの値を指定します。Can be one of the following:

  • Shared

    省略可能です。Optional. 参照してください共有します。See Shared.

  • Shadows

    省略可能です。Optional. 参照してくださいShadowsします。See Shadows.

  • ReadOnly

    省略可能です。Optional. 参照してくださいReadOnlyします。See ReadOnly.

  • WriteOnly

    省略可能です。Optional. 参照してくださいWriteOnlyします。See WriteOnly.

  • Iterator

    省略可能です。Optional. 参照してください反復子します。See Iterator.

  • name

    必須。Required. プロパティ名。Name of the property. Declared Element Names」を参照してください。See Declared Element Names.

  • parameterlist

    省略可能です。Optional. このプロパティのパラメーターとの可能な追加パラメーターを表すローカル変数名の一覧、Setプロシージャ。List of local variable names representing the parameters of this property, and possible additional parameters of the Set procedure. 参照してくださいパラメーター リストします。See Parameter List.

  • returntype

    場合に、必ずOption StrictOnします。Required if Option Strict is On. このプロパティによって返される値のデータ型。Data type of the value returned by this property.

  • Implements

    省略可能です。Optional. このプロパティには、このプロパティの包含クラスまたは構造体によって実装されるインターフェイスで定義されているそれぞれの 1 つまたは複数のプロパティが実装していることを示します。Indicates that this property implements one or more properties, each one defined in an interface implemented by this property's containing class or structure. 参照してくださいステートメントを実装します。See Implements Statement.

  • implementslist

    Implements を指定する場合は、必ず指定します。Required if Implements is supplied. 実装されているプロパティの一覧です。List of properties being implemented.

    implementedproperty [ , implementedproperty ... ]

    implementedproperty の構文と指定項目は次のとおりです。Each implementedproperty has the following syntax and parts:

    interface.definedname

    パーツPart 説明Description
    interface 必須。Required. このプロパティによって実装されるインターフェイスの名前を含むクラスまたは構造体。Name of an interface implemented by this property's containing class or structure.
    definedname 必須。Required. 使用されるプロパティが定義されている名前interfaceします。Name by which the property is defined in interface.
  • Get

    省略可能です。Optional. プロパティがマークされているかどうかに必要なWriteOnlyします。Required if the property is marked WriteOnly. 開始、Getプロパティ プロシージャをプロパティの値を返すために使用します。Starts a Get property procedure that is used to return the value of the property.

  • statements

    省略可能です。Optional. 内で実行するステートメントのブロック、GetまたはSetプロシージャ。Block of statements to run within the Get or Set procedure.

  • End Get

    終了、Getプロパティ プロシージャ。Terminates the Get property procedure.

  • Set

    省略可能です。Optional. プロパティがマークされているかどうかに必要なReadOnlyします。Required if the property is marked ReadOnly. 開始、Setプロパティ プロシージャ、プロパティの値を格納するために使用します。Starts a Set property procedure that is used to store the value of the property.

  • End Set

    終了、Setプロパティ プロシージャ。Terminates the Set property procedure.

  • End Property

    このプロパティの定義を終了します。Terminates the definition of this property.

RemarksRemarks

Propertyステートメントには、プロパティの宣言が導入されています。The Property statement introduces the declaration of a property. プロパティを持つことができます、 Get (読み取り専用) の手順をSetプロシージャ (書き込み専用)、または両方 (読み取り/書き込み)。A property can have a Get procedure (read only), a Set procedure (write only), or both (read-write). 省略することができます、GetSetプロシージャの自動実装プロパティを使用する場合。You can omit the Get and Set procedure when using an auto-implemented property. 詳細については、「自動実装プロパティ」を参照してください。For more information, see Auto-Implemented Properties.

使用することができますPropertyクラス レベルでのみです。You can use Property only at class level. つまり、宣言コンテキストプロパティは、クラス、構造体、モジュール、またはインターフェイスである必要があり、ソース ファイル、名前空間、プロシージャ、またはブロックすることはできません。This means the declaration context for a property must be a class, structure, module, or interface, and cannot be a source file, namespace, procedure, or block. 詳細については、「宣言コンテキストと既定のアクセス レベル」を参照してください。For more information, see Declaration Contexts and Default Access Levels.

既定では、プロパティは、パブリック アクセスを使用します。By default, properties use public access. アクセス修飾子を使ってプロパティのアクセス レベルを調整することができます、Propertyとステートメントでは、必要に応じて調整できますより制限の厳しいアクセス レベルは、プロパティ プロシージャのいずれか。You can adjust a property's access level with an access modifier on the Property statement, and you can optionally adjust one of its property procedures to a more restrictive access level.

Visual Basic のパラメーターを渡す、Setプロパティ割り当て中にプロシージャ。Visual Basic passes a parameter to the Set procedure during property assignments. パラメーターを指定しない場合Set、統合開発環境 (IDE) という名前の暗黙のパラメーターを使用してvalueします。If you do not supply a parameter for Set, the integrated development environment (IDE) uses an implicit parameter named value. このパラメーターは、プロパティに割り当てられる値を保持します。This parameter holds the value to be assigned to the property. 通常プライベート ローカル変数にこの値を格納して返すたびに、Getプロシージャが呼び出されます。You typically store this value in a private local variable and return it whenever the Get procedure is called.

ルールRules

  • 混合アクセス レベル。Mixed Access Levels. 必要に応じていずれかの異なるアクセス レベルを指定することができます、読み取り/書き込みプロパティを定義する場合、GetまたはSet両方ではなく、プロシージャ。If you are defining a read-write property, you can optionally specify a different access level for either the Get or the Set procedure, but not both. これを行うと、プロシージャのアクセス レベル、プロパティのアクセス レベルよりもより制限の厳しい場合があります。If you do this, the procedure access level must be more restrictive than the property's access level. 例では、プロパティが宣言されている場合、 Friend、宣言することができます、SetプロシージャPrivate、なくPublicします。For example, if the property is declared Friend, you can declare the Set procedure Private, but not Public.

    定義する場合、ReadOnlyまたはWriteOnlyプロパティ、1 つのプロパティ プロシージャ (GetまたはSet、それぞれ) すべてのプロパティを表します。If you are defining a ReadOnly or WriteOnly property, the single property procedure (Get or Set, respectively) represents all of the property. プロパティの 2 つのアクセス レベルを設定することがあるために、このような手順は、異なるアクセス レベルを宣言できません。You cannot declare a different access level for such a procedure, because that would set two access levels for the property.

  • 型を返します。Return Type. Propertyステートメントが返す値のデータ型を宣言できます。The Property statement can declare the data type of the value it returns. 任意のデータ型または列挙型、構造体、クラス、インターフェイスの名前を指定することができます。You can specify any data type or the name of an enumeration, structure, class, or interface.

    指定しない場合returntype、プロパティを返します。Objectします。If you do not specify returntype, the property returns Object.

  • 実装です。Implementation. このプロパティで使用する場合、Implementsキーワードを含むクラスまたは構造体があります、Implementsステートメントの直後のClassまたはStructureステートメント。If this property uses the Implements keyword, the containing class or structure must have an Implements statement immediately following its Class or Structure statement. Implementsステートメントで指定された各インターフェイスを含める必要がありますimplementslistします。The Implements statement must include each interface specified in implementslist. ただし、インターフェイスを定義する名前、 Property (でdefinedname) すると、このプロパティの名前と同じである必要はありません (でname)。However, the name by which an interface defines the Property (in definedname) does not have to be the same as the name of this property (in name).

動作Behavior

  • プロパティ プロシージャから取得します。Returning from a Property Procedure. ときに、GetまたはSetを呼び出したステートメントに続くステートメントを使用して、プロシージャは、呼び出し元のコードに返す、実行が続行します。When the Get or Set procedure returns to the calling code, execution continues with the statement following the statement that invoked it.

    Exit PropertyReturnステートメントでは、プロパティ プロシージャからすぐに終了します。The Exit Property and Return statements cause an immediate exit from a property procedure. 任意の数のExit PropertyReturnステートメントは、手順では、どこでも表示でき、組み合わせることができますExit PropertyReturnステートメント。Any number of Exit Property and Return statements can appear anywhere in the procedure, and you can mix Exit Property and Return statements.

  • 値を返します。Return Value. 値を返す、Getプロシージャ、プロパティ名に値を割り当てるか、含めることで、Returnステートメント。To return a value from a Get procedure, you can either assign the value to the property name or include it in a Return statement. 次の例では、プロパティ名に戻り値を割り当ててquoteForTheDayしを使用して、Exit Propertyステートメントに戻ります。The following example assigns the return value to the property name quoteForTheDay and then uses the Exit Property statement to return.

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

    使用する場合Exit Property値を割り当てることがなくnameGetプロパティのデータ型の既定値を返します。If you use Exit Property without assigning a value to name, the Get procedure returns the default value for the property's data type.

    Returnステートメントと同時に割り当てます、Getプロシージャを返す値し、手順を終了します。The Return statement at the same time assigns the Get procedure return value and exits the procedure. 次の例に示します。The following example shows this.

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

Example

次の例では、クラスのプロパティを宣言します。The following example declares a property in a class.

Class Class1
    ' Define a local variable to store the property value.
    Private propertyValue As String
    ' Define the property.
    Public Property Prop1() As String
        Get
            ' The Get property procedure is called when the value
            ' of a property is retrieved.
            Return propertyValue
        End Get
        Set(ByVal value As String)
            ' The Set property procedure is called when the value 
            ' of a property is modified.  The value to be assigned
            ' is passed in the argument to Set.
            propertyValue = value
        End Set
    End Property
End Class

関連項目See also