0

为什么当断点在该类之外时,我可以在“快速监视”窗口中看到我的类的私有成员?

我的断点在 ConsoleApplication.cpp 我的类在 XmlSignature.h 中定义

我可以看到这些私有成员:Transforms_Root_elementxmlDocument

这是我的课:

ref class XmlReference
{
public:
    XmlReference(String^ URI);
    virtual ~XmlReference();

    String^ URI;
    XmlElement^ Reference_element;

    String^ ns_ds = "http://www.w3.org/2000/09/xmldsig#";

    XmlNode^ AddTransform(String^ strAlgorithm);
    XmlNode^ AddTransform(String^ strAlgorithm, String^ strParameterName, String^ strParameter);

    List<XmlNode^>^ Transforms = gcnew List<XmlNode^>;
private:

    XmlNode^ Transforms_Root_element = nullptr;
    XmlDocument^ xmlDocument;

    //Called by AddTransform
    XmlNode^ CreateTransformElement(String^ strAlgorithm);
};

这是我可以看到的:

在此处输入图像描述

4

1 回答 1

1

这是一个功能,在调试时很有帮助:-)。编译器确保类成员可见性以强制执行面向对象的编程。正如@Medinoc 所观察到的,.net 运行时还保护类的私有和受保护内存不被其他上下文访问。

在任何情况下,调试器都可以完全访问内存并且可以显示所有成员内容。

于 2015-03-20T15:09:53.643 回答