首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >调试器中显示的对象属性与Intellisense中显示的属性之间的差异

调试器中显示的对象属性与Intellisense中显示的属性之间的差异
EN

Stack Overflow用户
提问于 2010-09-18 01:52:09
回答 3查看 154关注 0票数 2

当我在调试器中检查对象时,我在调试器中看到的属性比在Intellisense或代码中可用的属性多得多。

例如,调试器中ASP.NET中的Page对象显示了一个具有值的属性RelativeFilePath。但是当我尝试在代码中使用它时,它并不存在。为什么会这样呢?

我在MSDN中查找了RelativeFilePath属性,它存在于移动控件中。不确定为什么它会出现在常规asp.net控件的调试器中。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-09-18 01:57:27

调试器和intellisense在要显示的内容方面具有非常不同的目标。

Intellisense正在尝试提供可在对象上有效调用的成员集。本质上可访问的成员和扩展方法。这里的目标是帮助指导用户编写有效的代码。

调试器正在尝试提供对对象的运行时状态的检查。它不关心可访问性,而是将所有相关信息显示出来。它甚至允许通过用户扩展定制显示。这意味着您经常会看到对象上根本不存在的成员,或者用户代码无法访问的成员。

后者在您的场景中发挥作用。Page类型确实具有RelativeFilePath属性。但它是内部的,您的代码无法访问它,因此Intellisense不会显示它。调试器不考虑成员显示的可访问性,因此提供了该值。

票数 3
EN

Stack Overflow用户

发布于 2010-09-18 01:54:22

有几个属性可以附加到类型以获得更好的调试支持。也许其中一个就是你所看到的?

http://msdn.microsoft.com/en-us/library/ms228992.aspx

票数 0
EN

Stack Overflow用户

发布于 2010-09-18 01:54:50

我猜是因为这是你无权进入的受保护的或私有的财产。因此,您不能在代码中使用它,但可以在调试器中看到它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3737697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档