Visual Studio IntelliSense无法显示Control.IsDisposed属性?

4

我使用的是Visual Studio 2013,注意到IntelliSense中不会显示Control.IsDisposed。我不确定是否还有其他内容无法显示,其他内容在IntelliSense中都可以正常显示。

enter image description here

我可以正常使用IsDisposed属性,它可以编译和执行。这是为什么呢?是否有已知的解决方法?

1个回答

7

Control.IsDisposed属性的EditorBrowsableAttribute设置为Advanced,这使它在VS编辑器中不可浏览:

该属性或方法是仅高级用户应该看到的功能。编辑器可以显示或隐藏此类属性。

[
Browsable(false), EditorBrowsable(EditorBrowsableState.Advanced),
DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden),
SRDescription(SR.ControlDisposedDescr)
]
public bool IsDisposed {
    get {
        return GetState(STATE_DISPOSED);
    }
}

编辑:

@Glen指出(感谢!)您可以通过在“工具” -> “选项” -> “文本编辑器” ->“C#”中更改VS设置来查看高级成员:

Advanced members


在Yuval上面链接的文章中发现了这个:“在Visual C#中,您可以通过在工具|选项|文本编辑器|C#下的Hide Advanced Members设置中控制高级属性何时出现在IntelliSense和属性窗口中。相应的EditorBrowsableState是Advanced。” - Glen J Fergo
这对我来说似乎很奇怪。有人知道隐藏“高级”成员背后的原因吗? - KDecker
@KDecker 这个答案提供了一些关于何时使用它的信息。 - Yuval Itzchakov
1
我的猜测是:展示一个缩短的选项列表,只包括最常用的成员,排除更“高级”的成员,从而更快地找到特定的成员(假设它在列表中)。 - Polyfun
@Polyfun 可能需要隐藏新程序员会感到困惑或错误使用的“高级”属性。 - Yuval Itzchakov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接