先八卦一下,昨天寫了c# 編碼標準(一),得到了@h82258652的補充,感到非常欣慰,一是感覺他的觀點擴充套件了我的視野,豐富了我的看法,所以更堅定了我繼續寫部落格的想法,由於是五筆打字,經常不寫東西,有些字的字根都忘記了,所以通過寫部落格也可以多記些字根,二是決定把多年的一些東西分享出來,一起溝通交流,這樣也能夠共同進步,共同成長。
一、編碼實踐
1、乙個檔案的**避免超過500行。當然這個在特殊情況下也是可以的,只是乙個建設吧!
2、方法要避免超過25行。當然這個在特殊情況下也是可以的,只是乙個建設吧!
3、每行不要超過80個字元。
4、不要手動編輯任何機器**。
5、避免對顯而易見的**作注釋,**應該是自解釋的,由可讀性強的變數和方法組成的好的**應該不需要注釋。
6、除了「0」與「1」, 不要用數值硬編碼,宣告乙個常量代替。
7、僅對本來就是常量的值使用const修飾符,例如一周的天數。
8、避免對唯讀的變更使用const,在此情況下,使用readonly修飾符:
public class myclass
}
9、僅捕捉你需要顯式處理的異常。
10、在丟擲異常的catch語句中,總是丟擲最初異常(或由最初異常構建的另乙個異常),以保持最初錯誤的堆疊位置。
第一種:
catch(exception ex)
第二種:
catch(exception ex)
第三種:
catch
第四種:
catch(exception ex)
推薦使用第一種用法
11、最小化應用程式的程式集**(即exe客戶端程式集)。用類庫來包含業務邏輯。
12、避免顯式型別轉換。使用as操作符防禦性地進行轉換型別:
dog dog = new germanshepherd();
germanshepherd shepherd = dog as germanshepherd;
if (shepherd != null)
13、呼叫委託前始終檢查委託是否為空。
14、不要假定一種型別能支援某個介面。防禦性地為介面查詢是否支援該介面。
sometype obj1;
imyinte***ce obj2;
obj2 = obj1 as imyinte***ce;
if(obj2 != null)
else
15、永遠不要硬編碼將呈現給使用者的字串,而是使用資源。
16、永遠不要硬編碼佈署時可能修改的字串,例如連線字串。
17、用string.empty代替"":
// 避免
string name = "";
//推薦
string name = string.empty;
18、當頻繁地使用乙個字串超過4次,使用stringbuilder,不要使用string。
19、當提供乙個靜態成員變數時,總是提供乙個靜態建構函式。
20、除非在switch語句中跳轉,否則永遠不要用goto語句。
21、不要在使用泛型的**中對system.object進行型別轉化。使用約束或as運算子:
class someclass
{}// 避免
class myclass}
// 建議
class myclass where t : someclass}
22、不要在泛型介面中定義約束條件。介面級別的約束常常可以用強型別代替:
public class customer
// 避免
public inte***ce ilist where t : customer
// 建議
public inte***ce icustomerlist : ilist
23、lock鎖私有唯讀靜態物件。不要使用lock (this)、lock (typeof (mytype)) 和 lock ("mylock")等。
C 編碼標準
命名規範 1.利用pascal的方式定義型別 方法名和常量 複製c 儲存 public class someclass 2.對於區域性變數和方法的引數使用駱駝命名法 複製c 儲存 int number void mymethod int somenumber 3.介面的名稱前面加上i 複製c 儲存 ...
語音編碼標準
1.波形編碼 波形編碼是最簡單也是應用最早的語音編碼方法。最基本的一種就是pcm編碼,如g.711 建議中的a 律或 律。apcm dpcm和adpcm也屬於波形編碼的範疇,使用這些技術的標準有g.721 g.726 g.727 等。波形編碼具有實施簡單 效能優良的特點,不足是編碼頻寬往往很難再進一...
語音編碼標準
1.波形編碼 波形編碼是最簡單也是應用最早的語音編碼方法。最基本的一種就是pcm編碼,如g.711 建議中的a 律或 律。apcm dpcm和adpcm也屬於波形編碼的範疇,使用這些技術的標準有g.721 g.726 g.727 等。波形編碼具有實施簡單 效能優良的特點,不足是編碼頻寬往往很難再進一...