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...