Freigeben über


__property

 

Veröffentlicht: Juli 2016

Hinweis

Dieses Thema gilt nur für Version 1 von Managed Extensions für C++. Diese Syntax sollte nur verwendet werden, um Code von Version 1 beizubehalten. Finden Sie unter property (C++ Component Extensions) Informationen zur Verwendung der entsprechenden Funktionalität in der neuen Syntax.

Deklariert entweder einen Skalar oder eine indizierte Eigenschaft für die verwaltete Klasse.

Syntax

__property
function-declarator

Hinweise

Das __property-Schlüsselwort stellt die Deklaration einer Eigenschaft vor und kann in einer Klasse, einer Schnittstelle oder einem Werttyp angezeigt werden. Eine Eigenschaft kann über eine Getter-Funktion (schreibgeschützt), eine Setter-Funktion (lesegeschützt) oder beide (Lese-/Schreibzugriff) verfügen.

Hinweis

Ein Eigenschaftenname kann nicht mit dem Namen der verwalteten Klasse übereinstimmen, in der er enthalten ist. Der Rückgabetyp der Getter-Funktion muss dem Typ des letzten Parameters einer entsprechenden Setter-Funktion entsprechen.

Beispiel

Im folgenden Beispiel wird eine skalare Eigenschaft (Size) zur MyClass-Deklaration hinzugefügt. Die Eigenschaft wird dann implizit festgelegt und mithilfe der get_Size- und set_Size-Funktionen abgerufen:

// keyword__property.cpp
// compile with: /clr:oldSyntax
#using <mscorlib.dll>
using namespace System;

__gc class MyClass {
public:
   MyClass() : m_size(0) {}
   __property int get_Size() { return m_size; }
   __property void set_Size(int value) { m_size = value; }
   // compiler generates pseudo data member called Size
protected:
   int m_size;
};

int main() {
   MyClass* class1 = new MyClass;
   int curValue;

   Console::WriteLine(class1->Size);

   class1->Size = 4;   // calls the set_Size function with value==4
   Console::WriteLine(class1->Size);

   curValue = class1->Size;   // calls the get_Size function
   Console::WriteLine(curValue);
}

Ausgabe

0
4
4