function get ステートメント

クラスまたはインターフェイスで、新しいプロパティのアクセサーを宣言します。 function get は、function set と共に使用されることが多く、プロパティへの読み取り/書き込みアクセスを許可します。

// Syntax for the get accessor for a property in a class.
 [modifiers] function get propertyname() [: type] {
   [body]
}

// Syntax for the get accessor for a property in an interface.
[modifiers] function get propertyname() [: type]

引数

  • modifiers
    省略可能です。 プロパティの参照可能範囲と動作を制御する修飾子。

  • propertyname
    必ず指定します。 作成するプロパティの名前。 クラス内で一意の名前にする必要があります。ただし、読み取り/書き込みを行うプロパティを識別するために、同じ propertynameget アクセサーと set アクセサー両方に対して使用することはできます。

  • type
    省略可能です。 get アクセサーが返す型。 定義する場合は、set アクセサーのパラメーター型と一致させる必要があります。

  • body
    省略可能です。 get アクセサーの動作を定義する 1 つ以上のステートメント。

解説

オブジェクトのプロパティは、フィールドの場合とほとんど同じ方法でアクセスされます。ただし、プロパティでは、オブジェクトに格納されている値やオブジェクトから返される値を、より詳細に制御できます。 クラスで定義される get および set プロパティ アクセサーの組み合わせによって、プロパティは、読み取り専用、書き込み専用、または読み書き可能のいずれかになります。 多くの場合、プロパティは、private フィールドまたは protected フィールドに適切な値だけを格納するために使用されます。 読み取り専用のプロパティに値を代入したり、書き込み専用のプロパティから値を読み取ることはできません。

get アクセサーは、戻り値の型を指定する必要があり、引数を持ちません。 get アクセサーは、set アクセサーとペアで使用することもできます。set アクセサーは引数を 1 つ受け取り、戻り値の型を持ちません。 プロパティに両方のアクセサーが使用されている場合は、get アクセサーの戻り値の型と、set アクセサーの引数の型が一致している必要があります。

プロパティは、get アクセサーと set アクセサーのいずれか、または両方を持ちます。 プロパティの get アクセサー (get アクセサーがない場合は set アクセサー) だけが、プロパティ全体に適用されるカスタム属性を持ちます。 get および set アクセサーはどちらも、各アクセサーに適用される修飾子とカスタム属性を持つことができます。 プロパティ アクセサーはオーバーロードされませんが、隠ぺいまたはオーバーライドされます。

プロパティは interface の定義に指定できますが、インターフェイスに実装は与えられません。

使用例

いくつかのプロパティ宣言の例を次に示します。 Age プロパティは、読み書き可能として定義されています。 読み取り専用の FavoriteColor プロパティも定義されています。

class CPerson {
   // These variables are not accessible from outside the class.
   private var privateAge : int;
   private var privateFavoriteColor : String;

   // Set the initial favorite color with the constructor.
   function CPerson(inputFavoriteColor : String) {
      privateAge = 0;
      privateFavoriteColor = inputFavoriteColor;
   }

   // Define an accessor to get the age.
   function get Age() : int {
      return privateAge;
   }
   // Define an accessor to set the age, since ages change.
   function set Age(inputAge : int) {
      privateAge = inputAge;
   }

   // Define an accessor to get the favorite color.
   function get FavoriteColor() : String {
      return privateFavoriteColor;
   }
   // No accessor to set the favorite color, making it read only.
   // This assumes that favorite colors never change.
}

var chris: CPerson = new CPerson("red");

// Set Chris age.
chris.Age = 27;
// Read chris age.
print("Chris is " + chris.Age + " years old.");

// FavoriteColor can be read from, but not written to.
print("Favorite color is " + chris.FavoriteColor + ".");

このプログラムを実行すると、次のように表示されます。

Chrisis 27 years old.
Favorite color is red.

必要条件

バージョン .NET

参照

参照

class ステートメント

interface ステートメント

function ステートメント

function set ステートメント

概念

型の注釈

その他の技術情報

修飾子