1. 程式人生 > 其它 >規則引用筆記(可能更新可能不更新)

規則引用筆記(可能更新可能不更新)

CA2000:丟失範圍之前釋放物件

原因

建立了 IDisposable 型別的本地物件,但該物件不會被釋放,除非對物件的所有引用都超出範圍。

預設情況下,此規則會分析整個程式碼庫,但這是可配置的。

如何解決衝突

可使用 using 語句來包裝實現 IDisposable 的物件。 以這種方式包裝的物件將自動在 using 塊的末尾釋放。

但是,以下情況不應或不能使用 using 語句進行處理:

  • 若要返回一次性物件,必須在塊外部的try/finallyusing塊中構造該物件。

  • 請勿在 using 語句的建構函式中初始化可釋放物件的成員。

CA2234:傳遞 System.Uri 物件,而不傳遞字串

原因

已呼叫具有字串引數的方法,該字串引數的名稱包含 “uri”、“Uri”、“urn”、“url”或“Url”,而且該方法的宣告型別包含一個具有 System.Uri 引數的相應方法過載。

預設情況下,此規則僅檢視外部可見的方法和型別,但這是可配置的。

如何解決衝突

若要解決此規則的衝突,請呼叫採用 Uri 引數的過載。