Properties C++/CLI速记属性 开发人员在托管C++中如何进行等价操作?p>

Properties C++/CLI速记属性 开发人员在托管C++中如何进行等价操作?p>,properties,c++-cli,shorthand,Properties,C++ Cli,Shorthand,c#代码 我已经搜索过网络并找到了一些解决方案,但是很难区分哪种方法是正确的(最新的.NET 3.5),因为GETS/SETTER和托管C++的丰富历史。 谢谢

c#代码

我已经搜索过网络并找到了一些解决方案,但是很难区分哪种方法是正确的(最新的.NET 3.5),因为GETS/SETTER和托管C++的丰富历史。


谢谢

<托管C++不支持自动属性。您应该手动声明支持字段和访问器:

private: String* _internalSomeValue;
public:
__property String* get_SomeValue() { return _internalSomeValue; }
__property void set_SomeValue(String *value) { _internalSomeValue = value; }
C++/CLI通过非常简单的语法支持自动属性:

public: property String^ SomeValue;
更新(回复评论): 在C++/CLI中,使用自动属性语法时,无法单独控制每个访问器方法的可访问性。您需要自己定义支持字段和方法:

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

在C++/CLI中,您只需执行以下操作:

property String^ SomeValue;

只是给你更多的搜索词,这叫做一个小属性

托管C++过时了。C++/CLI是当前的方法。对不起,我正在使用C++/CLI。我仍然使用旧的名字:(DanDan:C++ + CLI是完全不同的语言。虽然它是托管C++的继承者,但托管C++不是真正的旧名称。我将确保我使用正确的名称来使用正确的语言。在C++/CLI版本中,我如何使SETter私有化呢?
property String^ SomeValue;