篩選過的 Code rule

2021-09-06 07:28:34 字數 4057 閱讀 3188

code rule note

microfost.design

ca1001:具有可釋放欄位的型別應該是可釋放的

using system;

using system.io;

namespace designlibrary

// this class violates the rule.

public class nodisposemethod

filestream newfile;

public nodisposemethod()

newfile = new filestream(@"c:\temp.txt", filemode.open);

// this class satisfies the rule.

public class hasdisposemethod: idisposable

filestream newfile;

public hasdisposemethod()

newfile = new filestream(@"c:\temp.txt", filemode.open);

protected virtual void dispose(bool disposing)

if (disposing)

// dispose managed resources

newfile.close();

// free native resources

public void dispose()

dispose(true);

gc.suppressfinalize(this);

ca1008:列舉應具有零值

ca1011:考慮將基型別作為引數傳遞

ca1016:用 assemblyversionattribute 標記程式集

ca1017:用 comvisibleattribute 標記程式集

ca1018:用 attributeusageattribute 標記特性

ca1023:索引器不應是多維的

ca1024:在適用處使用屬性

在大多數情況下,屬性代表資料,而方法執行操作。訪問屬性的方式與訪問欄位的方式相似,因此使用它們更容易。如果存在下列條件之一,方法就很適於成為屬性:

屬性的表現應當與字段一樣;如果該方法不是這樣,則不應將其更改為屬性。在下列情況下,方法比屬性更好:

ca1025:用形引數組替換重複的實參

ca1034:巢狀型別不應是可見的

ca1040:避免使用空介面

ca1044:屬性不應是只寫的

ca1049:擁有本機資源的型別應是可釋放的

ca1051:不要宣告可見例項字段

ca1053:靜態容器型別不應具有建構函式

ca1060:將 p/invoke 移動到 nativemethods 類

ca1062:驗證公共方法的引數

ca1063:正確實現 idisposable

ca1065:不要在意外的位置引發異常

microsoft.globalization

ca1307:指定 stringcomparison

ca1308:將字串規範化為大寫

ca1309:使用序號 stringcomparison

ca2101:指定對 p/invoke 字串引數進行封送處理

// violates rule: specifymarshalingforpinvokestringarguments.
[dllimport("advapi32.dll", charset=charset.auto)]
internal static extern int regcreatekey(intptr key, string subkey, out intptr result);
// satisfies rule: specifymarshalingforpinvokestringarguments.
[dllimport("advapi32.dll", charset = charset.unicode)]
internal static extern int regcreatekey2(intptr key, string subkey, out intptr result);

microsoft.maintainability

ca1500:變數名不應與欄位名相同

ca1504:檢查令人誤解的欄位名

ca1505:避免編寫無法維護的**

microsoft.mobility

ca1601:不要使用阻止電源狀態更改的計時器

microsoft.naming

ca1700:不要命名「reserved」列舉值

ca1701:資源字串複合詞應採用正確的大小寫

ca1702:複合詞應採用正確的大小寫

ca1703:資源字串應正確拼寫

ca1704:識別符號應正確拼寫

ca1707:識別符號不應包含下劃線

ca1709:識別符號的大小寫應當正確

ca1710:識別符號應具有正確的字尾

ca1711:識別符號應採用正確的字尾

ca1712:不要將型別名用作列舉值的字首

ca1715:識別符號應具有正確的字首

ca1716:識別符號不應與關鍵字衝突

ca1717:只有 flagsattribute 列舉應採用複數形式的名稱

ca1719:引數名不應與成員名衝突

ca1720:識別符號不應包含型別名稱

ca1721:屬性名不應與 get 方法衝突

ca1722:識別符號應採用正確的字首

ca1724:型別名不應與命名空間衝突

ca1725:引數名應與基方法中的宣告保持一致

ca1726:使用首選詞條

ca2204:應正確拼寫文字

microsoft.performance

ca1800:避免進行不必要的強制轉換

ca1802:在合適的位置使用文字

ca1804:移除未使用的區域性變數

ca1809:避免過多的區域性變數

ca1811:避免使用未呼叫的私有**

ca1812:避免未例項化的內部類

ca1815:重寫值型別上的 equals 和相等運算子

ca1819:屬性不應返回陣列

ca1820:使用字串長度測試是否有空字串

ca1822:將成員標記為 static

ca1823:避免未使用的私有字段

microsoft.portability

ca1903:僅使用目標框架中的 api

microsoft.reliability

ca2000:超出範圍前釋放物件

ca2001:避免呼叫有問題的方法

microsoft.usage

ca1801:檢查未使用的引數

ca1806:不要忽略方法結果

ca1816:正確呼叫 gc.suppressfinalize

ca2200:再次引發以保留堆疊詳細資訊

ca2201:不要引發保留的異常型別

ca2202:不要多次釋放物件

ca2205:使用 win32 api 的託管等效項

ca2208:正確例項化引數異常

ca2211:非常量字段不應是可見的

ca2213:應釋放可釋放的字段

ca2216:可釋放型別應宣告終結器

ca2224:過載相等運算子時重寫 equals 方法

ca2227:集合屬性應為唯讀

ca2229:實現序列化建構函式

ca2230:對可變數量的引數使用 params

ca2234:傳遞 system.uri 物件,而不傳遞字串

ca2241:為格式化方法提供正確的引數

ca2242:正確測試 nan

js 前端資料多條件篩選過濾

最近在用vue做乙個後台管理專案,因為vue2.0刪除了內建的過濾器,無法再像1.0版本或者angularjs那樣直接使用內建的過濾器實現資料的多條件篩選過濾。因此自己寫了乙個方法來實現這種功能。假設後端通過介面給我們的資料如下 let data 在實際專案中,我們需要根據篩選框中的條件來實現資料的...

js 前端資料多條件篩選過濾

最近在用vue做乙個後台管理專案,因為vue2.0刪除了內建的過濾器,無法再像1.0版本或者angularjs那樣直接使用內建的過濾器實現資料的多條件篩選過濾。因此自己寫了乙個方法來實現這種功能。假設後端通過介面給我們的資料如下 let data 在實際專案中,我們需要根據篩選框中的條件來實現資料的...

Pandas學習筆記 05 資料篩選 過濾

1.excel處理 選中原始資料 排序和篩選 篩選 選中c1列的下拉箭頭 自定義篩選方式,設定大於等於18 小於30 確定,即可實現顯示大於等於18歲,小於30歲的學生的成績。繼續篩選,在年齡18 30中,選出分數大於85的學生 選中d2的下拉列表,選擇數字篩選 大於 85 獲取資料 選出年齡段在1...