__property
Примечание
Этот раздел применим только к версии 1 управляемых расширений для C++.Этот синтаксис должен использоваться только для поддержания Кода версии 1.См. свойство дополнительные сведения об использовании эквивалентным функциям в новом синтаксисе.
Объявляет или скалярные или индексированное свойство для управляемого класса.
__property function-declarator
Заметки
__property ключевое слово вставляет объявления свойства и может появляться в класс, интерфейс или тип значения. Свойство может содержать функцию получения (только чтения), функцию метода установки (запись), доступно для чтения и записи (или оба режима).
Примечание
Имя свойства не может совпадать с именем управляемого класса, содержащего его.Возвращаемый тип функции получения должен соответствовать типу последнего параметра соответствующим функциям метод присвоения.
Пример
В следующем примере (скалярное свойствоSize) добавляет к MyClass объявление. Свойство неявно задано и затем полученное с помощью 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