首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

[你必須知道的 .NET] 第三十四回:隱藏 Object 成員 —— EditorBrowsableAttribute 控制 IntelliSense 可見性

     編輯:關於.NET

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 等隱形但可正常呼叫。

EditorBrowsableState 三值

  • Always:永遠可見(預設);
  • Advanced:僅在「隱藏進階成員」關閉時可見,搭配 Tools → Options → Text Editor → C# → General → Hide advanced members;
  • Never:永遠隱藏。

注意事項

  • **同一組件內無效**:Visual Studio 對專案內部型別忽略此屬性;
  • 僅影響 **設計時 IntelliSense**,編譯、反射、執行完全不受影響;
  • 適用於類別庫作者簡化公用 API 介面,提升使用者體驗。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved