密封类和对象浏览器(Sealed classes and Object Browser)

2019-10-18 05:44发布

在考察对象浏览器窗口中的.NET对象模型,我遇到了缺乏对密封类的信息。

如果,例如,一个导航到mscorlib程序容器- >系统命名空间- > String类,详细信息窗格中显示以下内容:

公共类字符串
系统成员

摘要:
表示文本为一系列的Unicode字符。

属性:
[System.Runtime.InteropServices.ComVisibleAttribute(真),System.Reflection.DefaultMemberAttribute( “个字符”)]

看来,如果一个类是密封的或者通过代码定义窗口或,当然,试图从中得到我只能确定。

然而,尽管下面的Apress - Pro C# 2008 and the .Net 3.5 Platform ,由安德鲁·特罗尔森,笔者显示188页上的对象浏览器如何显示密封状态:

这方面的资料从Visual Studio 2008中的对象浏览器中删除? 我也拿不回来不知何故?

虽然作者提到整个文本的Visual Studio 2008,该屏幕截图必须是从以前的版本。 这本书其实是在第4版,并于2001年开始回与.net 1.0 Beta 2中。

Answer 1:

我知道它已经几年,但我只是想确认我可以VS2k8 SP1看到这一点,但仅限String

我想这是因为String是唯一的class沿已被标记为“特殊”(基本类型吧?) IntegerLong等,这些都是ValueTypesstructures )。

注意,在这个问题的图像SByteSingleString 没有在LHS树状那里,因为他们现在做同样的图标。

编辑:这是另一个几年,我刚刚注意到了VB.NET中VS2k8 SP1 Public NotInheritable Class String时,我有对象浏览器浏览选择集中到我的项目或所有组件*,但只有Public Class String当我选择一个特定的.NET Framework(然而属性列,而他们在其他浏览选项不是)。

*由于在OP捕获的显示器!

NB它只有当你推卸更新显示String的LHS树状再次回来就可以了。 和VS2010 SP1相同的行为。

在VS2010我看到所有的组件显示StringNotInheritable ,对于.NET 4,和“空白”为.NET 2和Silverlight,但我目前不能确认什么VS2008显示了类似的情况。



Answer 2:

我的Visual Studio 2008中似乎不存在此问题。 你是否升级到SP1? 你有其他工具或加载项修改对象浏览器的功能?



文章来源: Sealed classes and Object Browser