Подтвердить что ты не робот

Скрытые свойства С++/CLI

Как разработчик делает эквивалент этого в управляемом С++?

С# code

public String SomeValue
{
  get;
  set;
}

Я просмотрел сеть и нашел некоторые решения, однако трудно отличить, какой правильный (последний,.NET 3.5) способ, учитывая красочную историю getters/seters и управляемый С++.

Спасибо!

4b9b3361

Ответ 1

Управляемый С++ не поддерживает автоматические свойства. Вы должны вручную объявить поле поддержки и аксессуаров:

private: String* _internalSomeValue;
public:
__property String* get_SomeValue() { return _internalSomeValue; }
__property void set_SomeValue(String *value) { _internalSomeValue = value; }

С++/CLI поддерживает автоматические свойства с очень простым синтаксисом:

public: property String^ SomeValue;

Обновление (ответ на комментарий):

В С++/CLI вы не можете контролировать доступность каждого метода доступа отдельно при использовании автоматического синтаксиса свойств. Вам необходимо определить поле поддержки и методы:

private: String^ field;
property String^ SomeValue { 
   public: String^ get() { return field; }
   private: void set(String^ value) { field = value; }
}

Ответ 2

В С++/CLI вы просто выполните:

property String^ SomeValue;

Ответ 3

Чтобы дать вам больше условий поиска, это называется тривиальным свойством