__property

Примечание

Этот раздел относится только к управляемым расширениям для C++ версии 1.Приведенный здесь синтаксис должен использоваться только для обслуживания кода версия 1.Сведения об использовании аналогичных функциональных возможностей в новом синтаксисе см. в разделе свойство.

Объявляет либо скалярное, либо индексированное свойство управляемого класса.

__property function-declarator

Заметки

Ключевое слово __property содержит объявление свойства и может использоваться в типе класса, интерфейса или значения. Свойство может иметь функцию получения свойства (только чтение), задания свойства (только запись) или обе этих функции (чтение и запись).

Примечание

Имя свойства не может совпадать с именем управляемого класса, к которому оно относится.Функция получения свойства должна иметь тип, который совпадает с типом последнего параметра в соответствующей функции задания свойства.

Пример

В следующем примере к объявлению MyClass добавляется скалярное свойство Size. Затем это свойство явным образом получается и задается при помощи функций get_Size и set_Size:

// 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);
}

Output

0
4
4