Sdílet prostřednictvím


__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