System.Object 的 7 個成員(Equals、GetHashCode、GetType、ToString 等)無所不在,汙染 IntelliSense。利用 [EditorBrowsable(EditorBrowsableState.Never)] 可將介面/類別成員從 Visual Studio 智慧感知隱藏,**不影響編譯與執行**。
[EditorBrowsable(EditorBrowsableState.Never)]
public interface IAnyObject
{
[EditorBrowsable(EditorBrowsableState.Never)] bool Equals(object obj);
[EditorBrowsable(EditorBrowsableState.Never)] int GetHashCode();
[EditorBrowsable(EditorBrowsableState.Never)] Type GetType();
[EditorBrowsable(EditorBrowsableState.Never)] string ToString();
}
public interface IObject : IAnyObject { void About(); }
public class AnyObject : IObject { public void About() { } }
結果:IObject 實例在 IntelliSense 僅顯示 About,ToString 等隱形但可正常呼叫。
Always:永遠可見(預設);Advanced:僅在「隱藏進階成員」關閉時可見,搭配 Tools → Options → Text Editor → C# → General → Hide advanced members;Never:永遠隱藏。