__property
Publicado: abril de 2016
Dica
Este tópico se aplica apenas a versão 1 de Managed Extensions for C++. Esta sintaxe só deve ser usada para manter o código da versão 1. Consulte property (C++ Component Extensions) para obter informações sobre como usar a funcionalidade equivalente na nova sintaxe.
Declara a uma propriedade escalar ou indexada para a classe gerenciada.
Sintaxe
__property
function-declarator
Comentários
O __property apresenta a declaração de uma propriedade de palavra-chave e pode aparecer em uma classe, interface ou tipo de valor. Uma propriedade pode ter uma função getter (somente leitura), uma função setter (somente gravação) ou ambos (leitura-gravação).
Dica
Um nome de propriedade não pode corresponder ao nome da classe gerenciada que o contém. O tipo de retorno da função getter deve corresponder ao tipo do último parâmetro de uma função setter correspondente.
Exemplo
No exemplo a seguir, uma propriedade escalar (Size) é adicionado para o MyClass declaração. A propriedade é definida implicitamente e recuperada usando o get_Size e set_Size funções:
// 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);
}
Saída
0
4
4