Share via


function get-Anweisung

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

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

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.

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

  • body
    Optional. Eine oder mehrere Anweisungen, mit denen die Funktionsweise des get-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 get-Accessor, der einen Rückgabetyp angeben muss, hat keine Argumente. Ein get-Accessor kann durch einen set-Accessor ergänzt werden, der ein Argument, aber keinen Rückgabetyp hat. 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 als zu lesen bzw. 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 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 + ".");

Beim Ausführen dieses Programms wird Folgendes ausgegeben:

Chrisis 27 years old.
Favorite color is red.

Anforderungen

Version .NET

Siehe auch

Referenz

class-Anweisung

interface-Anweisung

function-Anweisung

function set-Anweisung

Konzepte

Typanmerkung

Weitere Ressourcen

Modifizierer