Share via


function set-Anweisung

Deklariert die Accessoren für eine neue Eigenschaft in einer Klasse oder Schnittstelle. function set wird oft in Verbindung mit function get verwendet, um den Schreib-/Lesezugriff auf eine Eigenschaft zu ermöglichen.

// 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])

Argumente

  • modifiers
    Optional. Modifizierer, die die Sichtbarkeit und das Verhalten der Eigenschaft steuern.

  • propertyname
    Erforderlich. Der Name der erstellten Eigenschaft. Der Name muss innerhalb der Klasse eindeutig sein. Jedoch kann derselbe propertyname sowohl für den get-Accessor als auch für den set-Accessor verwendet werden, um eine Eigenschaft zu bezeichnen, aus der gelesen bzw. in die geschrieben werden kann.

  • parameter
    Erforderlich. Der vom set-Accessor angenommene formale Parameter.

  • type
    Optional. Der Parametertyp des set-Accessors. Er muss, sofern definiert, mit dem Rückgabetyp des get-Accessors übereinstimmen.

  • body
    Optional. Eine oder mehrere Anweisungen, mit denen die Funktionsweise des set-Accessors definiert wird.

Hinweise

Auf die Eigenschaften eines Objekts wird im Prinzip auf dieselbe Weise zugegriffen wie auf ein Feld. Der einzige Unterschied besteht darin, dass mithilfe von Eigenschaften eine bessere Steuerung der Werte möglich ist, die im Objekt gespeichert sind und von ihm zurückgegeben werden. Eigenschaften können je nach Kombination der in der Klasse für Eigenschaften definierten get-Accessoren und set-Accessoren als schreibgeschützt, lesegeschützt oder mit Lese-/Schreibzugriff definiert sein. Mit Eigenschaften wird oft sichergestellt, dass in einem private-Feld oder protected-Feld nur die passenden Werte gespeichert werden. Sie können einer schreibgeschützten Eigenschaft keinen Wert zuweisen, und aus einer lesegeschützten Eigenschaft können Sie keinen Wert lesen.

Ein set-Accessor muss über genau ein Argument verfügen und kann keinen Rückgabetyp angeben. Ein set-Accessor kann durch einen get-Accessor ergänzt werden, der keine Argumente hat und einen Rückgabetyp angeben muss. Wenn beide Accessoren für eine Eigenschaft verwendet werden, muss der Rückgabetyp des get-Accessors mit dem Argumenttyp des set-Accessors übereinstimmen.

Eine Eigenschaft kann einen get-Accessor oder einen set-Accessor oder beides haben. Nur der get-Accessor (bzw. der set-Accessor, falls kein get-Accessor vorhanden ist) einer Eigenschaft kann über benutzerdefinierte Attribute verfügen, die für die Eigenschaft als Ganzes gelten. Sowohl get-Accessoren als auch set-Accessoren können Modifizierer und benutzerdefinierte Attribute besitzen, die auf den jeweiligen Accessor angewendet werden. Eigenschaftenaccessoren können nicht überladen werden, aber sie können ausgeblendet oder überschrieben werden.

Eigenschaften können in der Definition eines interface angegeben werden, aber in der Schnittstelle ist keine Implementierung möglich.

Beispiel

Das folgende Beispiel veranschaulicht einige Eigenschaftendeklarationen. Eine Age-Eigenschaft wird zu lesen bzw. als zu schreiben definiert. Außerdem wird eine schreibgeschützte FavoriteColor-Eigenschaft definiert.

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 + ".");

Beim Ausführen dieses Programms wird Folgendes ausgegeben:

Chris is 27 years old.
Favorite color is red.

Anforderungen

Version .NET

Siehe auch

Referenz

class-Anweisung

interface-Anweisung

function-Anweisung

function get-Anweisung

Konzepte

Typanmerkung

Weitere Ressourcen

Modifizierer