Compartilhar via


__property

Dica

Este tópico se aplica somente à versão 1 de Managed Extensions for C++.Esta sintaxe só deve ser usada para manter o código da versão 1.Consulte propriedade para obter informações sobre como usar a funcionalidade equivalente na nova sintaxe.

Declara uma propriedade escalar ou indexada para a classe gerenciada.

__property function-declarator

Comentários

A palavra-chave __property apresenta a declaração de uma propriedade e pode aparecer em um tipo de classe, interface ou valor. Uma propriedade pode ter uma função getter (somente leitura), uma função setter (somente gravação) ou ambas (leitura-gravação).

Dica

Um nome de propriedade pode não 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) é adicionada à declaração MyClass. A propriedade é definida implicitamente e recuperada usando as funções get_Size e 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);
}

Saída

0
4
4