__property
Publikováno: duben 2016
Poznámka
Toto téma se týká pouze verze 1 spravovaných rozšíření jazyka C++. Tato syntaxe by měla sloužit pouze k udržování kódu verze 1. Viz property (C++ Component Extensions) informace o použití ekvivalentní funkce v nové syntaxi.
Deklaruje skalární nebo indexovanou vlastnost pro spravovanou třídu.
Syntaxe
__property
function-declarator
Poznámky
__property Klíčové slovo zavádí deklaraci vlastnosti a se mohou objevit v třídě, rozhraní nebo typ hodnoty. Vlastnost může mít funkci getter (jen pro čtení), funkci setter (jen pro zápis) nebo obě (čtení i zápis).
Poznámka
Název vlastnosti nesmí shodovat s názvem spravované třídy, který jej obsahuje. Návratový typ funkce getter musí odpovídat typu poslední parametru odpovídající funkce setter.
Příklad
V následujícím příkladu skalární vlastnost (Size) je přidán do MyClass prohlášení. Vlastnost je pak implicitně nastavena a načíst pomocí get_Size a set_Size funkce:
// 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);
}
Výstup
0
4
4