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!

Était-ce utile?

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top