日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

“源代码中禁止显示”概述

發布時間:2025/7/25 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 “源代码中禁止显示”概述 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

檢查代碼之后,您可能確定代碼是正確的。也可能是以下情況,即某些沖突的優先級較低,因此不會在當前的開發周期中修復。無論出于何種原因,以下操作通常是有用的,即指出相應警告不適用,以使小組成員了解代碼已經過檢查并已決定取消警告。“源代碼中禁止顯示”(ISS) 很有用,因為開發人員可以將取消警告的修飾放在靠近警告本身的位置。

  • SuppressMessage 屬性

    使用有條件發出的托管代碼自定義屬性?SuppressMessage?來呈現“源代碼中禁止顯示”。該屬性具有下列組成部分:

    ?

    [Scope:SuppressMessage("Rule Category", "Rule Id", "Justification", "MessageId", "Scope", "Target")]

    ?

    • Rule Category:定義的規則所屬的類別。

    • Rule Id:規則的標識符。支持對規則 ID 的使用短名稱或長名稱。短名稱為 CAXXXX;長名稱為 CAXXXX:FriendlyTypeName。

    • Target:用于指定在其上禁止顯示警告的目標的標識符。

    • Justification:用于記錄禁止顯示消息的原因的文本。

    • Scope:在其上禁止顯示警告的目標。如果未指定目標,則設置為屬性的目標。支持的范圍包括:

    • 模塊

    • 命名空間

    • 資源

    • 類型

    • 成員

    • 參數

    • Message Id:方法的名稱。

  • 用法

    常見的情況是在?SuppressMessage?屬性的實例所應用于的級別禁止顯示沖突。禁止顯示的一般形式包括規則類別和一個規則標識符,該標識符包含可選的規則名稱的用戶可讀表示形式。它優先于記錄規則名稱的源代碼注釋,以確保信息與排除緊密相連。例如,

    [SuppressMessage("Microsoft.Design", "CA1021:Avoid out parameters")]

    ?

    如果出于嚴格的性能原因,要求最大程度地減少 ISS 元數據,則可以省略規則名稱本身。規則類別及其“rule id”(規則 ID)一起構成足夠唯一的規則標識符。例如,

    [SuppressMessage("Microsoft.Design", "CA1021")]

    出于可維護性的原因,建議不要使用該格式。

    ?

  • 在方法體內禁止顯示多個沖突

    屬性只能應用于方法,而不能嵌入到方法體中。但是,您可以將方法名稱指定為消息 ID,以便在方法體內多次出現沖突時進行區分。

    在下面的示例中,方法 Test 引發對 Fair () 和 Bad () 的所有調用的托管代碼分析沖突。SuppressMessage?屬性禁止顯示對 Fair 的所有調用的沖突;對 Bad 的調用仍會引發沖突。

    ?

    [SuppressMessage("Microsoft.Design?", "CA1039:Lists are strongly typed", MessageId=?"F1")]

    void Test()

    {

    Fair(); // calling Fair() causes violations

    Bad(); // calling Bad()also raises violations

    Fair(); // calling Fair() causes violations

    }

    ?

  • 模塊級禁止顯示

    托管代碼分析工具檢查在程序集、模塊、類型、成員或參數級應用的?SuppressMessage?屬性。它還針對資源和命名空間引發沖突。這些沖突必須在模塊級應用,并且是有范圍的。例如,下面的消息禁止顯示命名空間沖突:

    [module: SuppressMessage("Microsoft.Naming", "CA1004:AvoidMisspelledNamespaces", Scope="namespace", Target="Microsoft.Design", Id="Fair")]

    ?

    任何禁止顯示都可以通過指定一個顯式范圍來表示。這些禁止顯示必須在模塊級啟用;但是,您不能通過修飾某個類型來指定成員級的禁止顯示。對于引用并不映射到顯式提供的用戶源的編譯器生成的代碼的消息,模塊級禁止顯示是禁止顯示它們的唯一方法。例如,下面的代碼示例禁止顯示針對編譯器發出的構造函數的沖突:

    ?

    [module: SuppressMessage("Microsoft.Design", "CA1055:AbstractTypesDoNotHavePublicConstructors", Scope="member", Target="Microsoft.Tools.FxCop.Type..ctor()")]

    注意???目標始終包含完全限定的項名稱。

  • 全局禁止顯示文件

    全局禁止顯示文件維護沒有目標的禁止顯示行為。例如,程序集級沖突存儲在該文件中。此外,某些 ASP.NET 禁止顯示之所以存儲在該文件中,還因為項目級別設置對于代碼隱藏的窗體不可用。

轉載于:https://www.cnblogs.com/myitm/archive/2010/03/30/1700314.html

總結

以上是生活随笔為你收集整理的“源代码中禁止显示”概述的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。