开发人员要如何在托管的C++中执行与此等效的操作?:
C# 代码
public String SomeValue
{
get;
set;
}
我已经搜遍了网络并找到一些解决方案,但是由于getter/setter和Managed C++的丰富历史,很难区分哪种是正确的(最新的.NET 3.5)方式。
谢谢!
开发人员要如何在托管的C++中执行与此等效的操作?:
C# 代码
public String SomeValue
{
get;
set;
}
我已经搜遍了网络并找到一些解决方案,但是由于getter/setter和Managed C++的丰富历史,很难区分哪种是正确的(最新的.NET 3.5)方式。
谢谢!
Managed 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;
为了给您提供更多搜索词,这被称为琐碎属性