__property
Publicada: abril de 2016
Nota
Este tema solo es aplicable a la versión 1 de Extensiones administradas para C++. Esta sintaxis solo se debe utilizar para mantener el código de la versión 1. Consulte property (Extensiones de componentes de C++) para obtener información sobre el uso de la funcionalidad equivalente en la nueva sintaxis.
Declara una propiedad escalar o indizada para la clase administrada.
Sintaxis
__property
function-declarator
Comentarios
La palabra clave __property presenta la declaración de una propiedad y puede aparecer en una clase, interfaz o tipo de valor. Una propiedad puede tener una función captadora (de solo lectura), una función establecedor (de solo escritura) o ambas (de lectura y escritura).
Nota
Un nombre de propiedad no puede coincidir con el nombre de la clase administrada que lo contiene. El tipo de valor devuelto de la función captadora debe coincidir con el tipo del último parámetro de una función establecedora correspondiente.
Ejemplo
En el ejemplo siguiente, se agrega una propiedad escalar (Size) a la declaración MyClass. A continuación, la propiedad se establece y recupera implícitamente mediante las funciones get_Size y 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);
}
Salida
0
4
4