C++ net中的私人成员?

C++ net中的私人成员?,c++,.net,visual-studio,C++,.net,Visual Studio,如果有属性,是否使用私有变量? 还有,有没有私人财产 这个问题是在我今天处理一个程序时提出来的。我意识到必须将我所有的财产公开。然后我意识到我没有太多的私人会员了。对不起,这个问题很愚蠢,我来自纯C++背景。 < P>是的,是的。大多数属性(包括公共属性)都由私有字段返回。这是必要的,因为属性只是getter和/或setter方法,您仍然需要一个物理位置来存储它们 例如,自动实现的属性如下: public int MyValue { get; set; } 编译为如下内容: private i

如果有属性,是否使用私有变量? 还有,有没有私人财产


这个问题是在我今天处理一个程序时提出来的。我意识到必须将我所有的财产公开。然后我意识到我没有太多的私人会员了。对不起,这个问题很愚蠢,我来自纯C++背景。

< P>是的,是的。大多数属性(包括公共属性)都由私有字段返回。这是必要的,因为属性只是getter和/或setter方法,您仍然需要一个物理位置来存储它们

例如,自动实现的属性如下:

public int MyValue { get; set; }
编译为如下内容:

private int _myValue;

public int MyValue { 
    get { return this._myValue; }
    set { this._myValue = value; }
}
请注意,属性仍然需要一个实际字段来存储其值

现在关于私有财产,是的,这仍然有用。最常见的情况是,您希望封装一些简单的逻辑,但不希望在方法中封装。例如:

private MyObject _myObject;

private MyObject MyObject { 
    get { 
        if (this._myObject == null)
            this._myObject = new MyObject();
        return this._myObject;
    }
}
现在,在代码的其他地方,您可以简单地引用
this.MyObject
,而不必每次都进行空检查


它在涉及序列化的某些情况下,或者在类型的私有成员上反映某些内容的任何其他情况下也很有用。在这些情况下,拥有一个实际的属性是很有用的,即使它从未公开过。

C#“属性”通常与私有变量一起使用。私有字段是实际值;属性提供访问权限,但以受控方式。这两个链接可能会有帮助:你的问题是关于C++ + CLI的更多,而不是C++,请适当地标记它。谢谢。现在有道理了。