properties - C++/CLI 速记属性

标签 properties c++-cli shorthand

开发人员如何在托管 C++ 中执行相当于此操作的操作? :

C# 代码

public String SomeValue
{
  get;
  set;
}

我在网上搜索并找到了一些解决方案,但是考虑到 getter/setter 和托管 c++ 的丰富多彩的历史,很难区分哪一个是正确的(最新的,.NET 3.5)方法。

谢谢!

最佳答案

托管 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; }
}

关于properties - C++/CLI 速记属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1907814/

相关文章:

java - 如何在属性文件中转义等号

java - 您能建议一些比 java.util.Properties 更高级的东西吗?

winforms - 错误 C2039 : 'Dispose' : is not a member of 'System::Windows::Forms::ErrorProvider'

c# - C++/Cli 向托管 Action<T1,T2> 对象添加回调

visual-studio - 当远程计算机上未安装 VS 时,使用 CRT 的 DEBUG 版本远程调试应用程序

java - 收集集合中对象的属性

javascript - 为什么 javascript 对象属性描述符不总是默认为 false (根据规范)

c# - 如果对象不为空,则将对象添加到列表的简写

Java数学运算简写?

javascript - 简写 javascript 中的多个操作