次の方法で共有


function set ステートメント

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

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

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

引数

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

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

  • parameter
    必ず指定します。 set アクセサーが受け取る仮パラメーター。

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

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

解説

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

set アクセサーの引数は 1 つだけで、戻り値の型は指定できません。 set アクセサーは、get アクセサーとペアで使用することもできます。get アクセサーは引数を持たず、戻り値の型を指定する必要があります。 プロパティに両方のアクセサーが使用されている場合は、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's age.
chris.Age = 27;
// Read Chris's age.
print("Chris is " + chris.Age + " years old.");

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

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

Chris is 27 years old.
Favorite color is red.

必要条件

バージョン .NET

参照

参照

class ステートメント

interface ステートメント

function ステートメント

function get ステートメント

概念

型の注釈

その他の技術情報

修飾子