propriétés raccourcies C ++ / CLI
-
19-09-2019 - |
Question
Comment un développeur faire l'équivalent de ce managé c ++? :
c # code
public String SomeValue
{
get;
set;
}
Je l'ai parcouru le net et trouvé des solutions, mais il est difficile de distinguer ce qui est correct (plus tard, .NET 3.5) façon, compte tenu de l'histoire colorée de getters / setters et géré c ++.
Merci!
La solution
Managed C ++ ne supporte pas les propriétés automatiques. Vous devez déclarer manuellement un champ de support et les accesseurs:
private: String* _internalSomeValue;
public:
__property String* get_SomeValue() { return _internalSomeValue; }
__property void set_SomeValue(String *value) { _internalSomeValue = value; }
C ++ / CLI prend en charge les propriétés automatiques avec une syntaxe très simple:
public: property String^ SomeValue;
Mise à jour (réponse à un commentaire):
En C ++ / CLI, vous ne pouvez pas contrôler l'accessibilité de chaque méthode accesseur séparément lorsque vous utilisez la syntaxe de la propriété automatique. Vous devez définir le champ de support et les méthodes vous-même:
private: String^ field;
property String^ SomeValue {
public: String^ get() { return field; }
private: void set(String^ value) { field = value; }
}
Autres conseils
En C ++ / CLI vous faire juste:
property String^ SomeValue;
Pour vous donner plus de termes de recherche, on appelle propriété trivial