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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

译 | 使用Roslyn分析器高效编写更好的代码

發(fā)布時間:2023/12/4 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 译 | 使用Roslyn分析器高效编写更好的代码 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

原文:Mika Dumont

翻譯:汪宇杰

Roslyn 是 .NET 編譯器平臺,即使在運行代碼之前,它也能幫助您捕獲 Bug。例如內(nèi)置于 Visual Studio 中的Roslyn 拼寫檢查分析器。

假設(shè)您正在創(chuàng)建一個靜態(tài)方法,并將 static 單詞拼錯為 statc。在運行代碼之前,您將能夠看到此拼寫錯誤。因為 Roslyn 可以在鍵入代碼時生成警告,甚至在您完成行之前。換句話說,您不必編譯代碼之后才發(fā)現(xiàn)您犯了一個錯誤。

Roslyn 分析儀還可以通過 Visual Studio 燈泡圖標(biāo)顯示自動代碼修復(fù),從而允許您立即修復(fù)代碼。

但是,如果你能捕捉到更多的錯誤呢?

讓我向您介紹 Roslyn 分析器包。這些分析器集合提供了更詳細(xì)的分析,但隨 Visual Studio 默認(rèn)工具發(fā)布。要了解有關(guān)我們最喜歡的 Roslyn 分析儀的詳細(xì)信息,請訪問我們的 Roslyn 分析器 GitHub 倉庫。此倉庫包括仍然適用于現(xiàn)代軟件開發(fā)的 FxCop,但現(xiàn)在以基于 Roslyn 的現(xiàn)代代碼分析平臺為目標(biāo)。讓我們繼續(xù),安裝這個包,以提高工作效率,更快地編寫更好的代碼!

譯者注:Roslyn 分析器 https://github.com/dotnet/roslyn-analyzers

將 FxCop 分析器作為 NuGet 包安裝

假設(shè)您使用的是 Visual Studio 2017 15.8 或更高版本,請選擇最新版本的 Microsoft.CodeAnalysis.FxCopAnalyzers。

使用包管理器 UI 在 Visual Studio 中安裝包。

安裝包后,只需從解決方案資源管理器自定義分析器診斷。分析器節(jié)點將顯示在解決方案資源管理器中的"引用"或"依賴項"節(jié)點下。如果展開分析器,然后展開其中一個分析器程序集,則可以在程序集中看到所有診斷。

您可以在屬性窗口中查看診斷的屬性,包括其描述和默認(rèn)嚴(yán)重性。要查看屬性,請右鍵單擊規(guī)則并選擇"屬性",或選擇規(guī)則后按 Alt+Enter。

解決方案資源管理器中每個診斷項旁邊的圖標(biāo)對應(yīng)于您在編輯器中打開規(guī)則集時看到的圖標(biāo):

  • 圓圈中的"i"表示信息

  • 三角形中的"!" 表示警告

  • 圓圈中的"x"表示嚴(yán)重

  • 淺色背景上圓圈中的"i"表示隱藏的嚴(yán)重

  • 圓圈中的"*"表示忽略的診斷

然后,可以從解決方案資源管理器設(shè)置規(guī)則集嚴(yán)重性。在解決方案資源管理器中,展開依賴項和分析器。展開包含要為其設(shè)置嚴(yán)重性的規(guī)則的程序集。右鍵單擊規(guī)則并選擇"設(shè)置規(guī)則集嚴(yán)重性",并在彈出的菜單中選擇一個嚴(yán)重性選項。

如果將規(guī)則嚴(yán)重性設(shè)置為警告,則會在代碼中收到該特定規(guī)則集的警告。

現(xiàn)在,您已經(jīng)了解了分析器的工作原理,您可以提高工作效率,更快地編寫更好的代碼!

Q&A

問:此警告顯示在 Visual Studio 中:"運行代碼分析已棄用為 FxCop 分析器,該分析器在生成期間運行。請參閱https://aka.ms/fxcopanalyzers遷移到 FxCop 分析儀"。這是什么意思?

答:FxCop 是比 Roslyn 早近十年的代碼分析引擎。就像我們推進(jìn)編譯器(例如介紹 Roslyn)一樣,我們也在將代碼分析技術(shù)推進(jìn)到 Roslyn 平臺。由于它由 .NET 編譯器平臺提供支持,因此在鍵入代碼時,它可以在代碼中生成警告。換句話說,您不必并編譯代碼才能發(fā)現(xiàn)您犯了一個錯誤。

問:FxCop分析儀和舊版FxCop分析器有什么區(qū)別?

答:FxCop 分析器在編譯過程中實時分析源代碼,而舊版 FxCop 是靜態(tài)代碼分析,并在生成完成后分析二進(jìn)制文件。有關(guān)詳細(xì)信息,請參閱 Roslyn 分析器與靜態(tài)代碼分析(1)和 FxCop 分析器常見問題解答(2)。

問:我可以編寫自定義分析器嗎?

答:當(dāng)然可以!有關(guān)如何編寫分析器的文檔,請參閱此處(3)。

問:我應(yīng)該使用 Roslyn 分析器還是 .editorconfig 規(guī)范代碼樣式?

答:Roslyn 分析器和 .editorconfig 文件是齊頭并進(jìn)的。在 .editorconfig 文件或文本編輯器選項頁上定義代碼樣式時,實際上正在配置內(nèi)置于 Visual Studio 中的 Roslyn 分析器。

問:分析器在持續(xù)集成 (CI) 生成中工作嗎?

答:是的,分析器作為NuGet包可以 CI 中約束編譯。

問:在哪里可以請求更多分析器或報告錯誤?

答:您可以在 GitHub 上的 Roslyn 倉庫上請求更多分析器并報告 Bug。

譯者注:

(1)https://docs.microsoft.com/visualstudio/code-quality/roslyn-analyzers-overview?view=vs-2019#roslyn-analyzers-vs-static-code-analysis

(2) https://docs.microsoft.com/visualstudio/code-quality/fxcop-analyzers-faq?view=vs-2019

(3)https://docs.microsoft.com/dotnet/csharp/roslyn-sdk/tutorials/how-to-write-csharp-analyzer-code-fix

(4)https://github.com/dotnet/roslyn/issues

英文原文可點擊“閱讀原文”查看

總結(jié)

以上是生活随笔為你收集整理的译 | 使用Roslyn分析器高效编写更好的代码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。