規則引用筆記(可能更新可能不更新)
阿新 • • 發佈:2022-05-20
CA2000:丟失範圍之前釋放物件
原因
建立了 IDisposable 型別的本地物件,但該物件不會被釋放,除非對物件的所有引用都超出範圍。
預設情況下,此規則會分析整個程式碼庫,但這是可配置的。
如何解決衝突
可使用 using
語句來包裝實現 IDisposable 的物件。 以這種方式包裝的物件將自動在 using
塊的末尾釋放。
但是,以下情況不應或不能使用 using
語句進行處理:
-
若要返回一次性物件,必須在塊外部的
try/finally
using
塊中構造該物件。 -
請勿在
using
語句的建構函式中初始化可釋放物件的成員。
CA2234:傳遞 System.Uri 物件,而不傳遞字串
原因
已呼叫具有字串引數的方法,該字串引數的名稱包含 “uri”、“Uri”、“urn”、“url”或“Url”,而且該方法的宣告型別包含一個具有 System.Uri 引數的相應方法過載。
預設情況下,此規則僅檢視外部可見的方法和型別,但這是可配置的。
如何解決衝突
若要解決此規則的衝突,請呼叫採用 Uri 引數的過載。