__property
Notes
Cette rubrique s'applique uniquement à la version 1 des extensions managées pour C++.Cette syntaxe doit être utilisée uniquement pour conserver le code de la version 1.Consultez propriété pour plus d'informations sur l'utilisation de la fonctionnalité équivalente dans la nouvelle syntaxe.
Déclare une propriété scalaire ou indexée pour la classe managée.
__property function-declarator
Notes
Le mot clé __property introduit la déclaration d'une propriété et peut figurer dans un type classe, interface ou valeur. Une propriété peut avoir une fonction d'accesseur Get (lecture seule), une fonction d'accesseur Set (écriture seule) ou les deux (lecture-écriture).
Notes
Un nom de propriété ne peut pas correspondre au nom de la classe managée qui la contient.Le type de retour de la fonction d'accesseur Get doit correspondre au type du dernier paramètre d'une fonction d'accesseur Set correspondante.
Exemple
Dans l'exemple ci-dessous, une propriété scalaire (Size) est ajoutée à la déclaration MyClass. La propriété est alors implicitement définie et extraite à l'aide des fonctions get_Size et 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);
}
Sortie
0
4
4