日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

首頁 > 編程 > C# > 正文

C# 編碼好習慣,獻給所有熱愛c#的同志

2020-01-24 03:46:42
字體:
來源:轉載
供稿:網友
1. 避免將多個類放在一個文件里面。
2. 一個文件應該只有一個命名空間,避免將多個命名空間放在同一個文件里面。
3. 一個文件最好不要超過500行的代碼(不包括機器產生的代碼)。
4. 一個方法的代碼長度最好不要超過25行。
5. 避免方法中有超過5個參數的情況。使用結構來傳遞多個參數。
6. 每行代碼不要超過80個字符。
7. 不要手工的修改機器產生的代碼。
a) 如果需要編輯機器產生的代碼,編輯格式和風格要符合該編碼標準。
b) Use partial classes whenever possible to factor out the maintained portions.
8. 避免利用注釋解釋顯而易見的代碼。
a) 代碼應該可以自解釋。好的代碼由可讀的變量和方法命名因此不需要注釋。
9. Document only operational assumptions, algorithm insights and so on.
10. 避免使用方法級的文檔。
a) 使用擴展的API文檔說明之。
b) 只有在該方法需要被其他的開發者使用的時候才使用方法級的注釋。(在C#中就是///)
11. 不要硬編碼數字的值,總是使用構造函數設定其值。
12. 只有是自然結構才能直接使用const,比如一個星期的天數。
13. 避免在只讀的變量上使用const。如果想實現只讀,可以直接使用readonly。
public class MyClass
{
public readonly int Number;
public MyClass(int someValue)
{
Number = someValue;
}
public const int DaysInWeek = 7;
}
14. 每個假設必須使用Assert檢查
a) 平均每15行要有一次檢查(Assert)
using System.Diagnostics;
object GetObject()
{…}
object obj = GetObject();
Debug.Assert(obj != null);
15. 代碼的每一行都應該通過白盒方式的測試。
16. 只拋出已經顯示處理的異常。
17. 在捕獲(catch)語句的拋出異常子句中(throw),總是拋出原始異常維護原始錯誤的堆棧分配。
catch(Exception exception)
{
MessageBox.Show(exception.Message);
throw ; //和throw exception一樣。
}
18. 避免方法的返回值是錯誤代碼。
19. 盡量避免定義自定義異常類。
20. 當需要定義自定義的異常時:
a) 自定義異常要繼承于ApplicationException。
b) 提供自定義的序列化功能。
21. 避免在單個程序集里使用多個Main方法。
22. 只對外公布必要的操作,其他的則為internal。
23. Avoid friend assemblies, as it increases inter-assembly coupling.
24. Avoid code that relies on an assembly running from a particular location.
25. 使應用程序集盡量為最小化代碼(EXE客戶程序)。使用類庫來替換包含的商務邏輯。
26. 避免給枚舉變量提供顯式的值。
//正確方法
public enum Color
{
Red,Green,Blue
}
//避免
public enum Color
{
Red = 1,Green = 2,Blue = 3
}
27. 避免指定特殊類型的枚舉變量。
//避免
public enum Color : long
{
Red,Green,Blue
}
28. 即使if語句只有一句,也要將if語句的內容用大括號擴起來。
29. 避免使用trinary條件操作符。
30. 避免在條件語句中調用返回bool值的函數。可以使用局部變量并檢查這些局部變量。
bool IsEverythingOK()
{…}
//避免
if (IsEverythingOK ())
{…}
//替換方案
bool ok = IsEverythingOK();
if (ok)
{…}
31. 總是使用基于0開始的數組。
32. 在循環中總是顯式的初始化引用類型的數組。
public class MyClass
{}
MyClass[] array = new MyClass[100];
for(int index = 0; index < array.Length; index++)
{
array[index] = new MyClass();
}
33. 不要提供public 和 protected的成員變量,使用屬性代替他們。
34. 避免在繼承中使用new而使用override替換。
35. 在不是sealed的類中總是將public 和 protected的方法標記成virtual的。
36. 除非使用interop(COM+ 或其他的dll)代碼否則不要使用不安全的代碼(unsafe code)。
37. 避免顯示的轉換,使用as操作符進行兼容類型的轉換。
Dog dog = new GermanShepherd();
GermanShepherd shepherd = dog as GermanShepherd;
if (shepherd != null )
{…}
38. 當類成員包括委托的時候
a) Copy a delegate to a local variable before publishing to avoid concurrency race
condition.
b) 在調用委托之前一定要檢查它是否為null
public class MySource
{
public event EventHandler MyEvent;
public void FireEvent()
{
EventHandler temp = MyEvent;
if(temp != null )
{
temp(this,EventArgs.Empty);
}
}
}
39. 不要提供公共的事件成員變量,使用事件訪問器替換這些變量。
public class MySource
{
MyDelegate m_SomeEvent ;
public event MyDelegate SomeEvent
{
add
{
m_SomeEvent += value;
}
remove
{
m_SomeEvent -= value;
}
}
}
40. 使用一個事件幫助類來公布事件的定義。
41. 總是使用接口。
42. 類和接口中的方法和屬性至少為2:1的比例。
43. 避免一個接口中只有一個成員。
44. 盡量使每個接口中包含3-5個成員。
45. 接口中的成員不應該超過20個。
a) 實際情況可能限制為12個
46. 避免接口成員中包含事件。
47. 避免使用抽象方法而使用接口替換。
48. 在類層次中顯示接口。
49. 推薦使用顯式的接口實現。
50. 從不假設一個類型兼容一個接口。Defensively query for that interface.
SomeType obj1;
IMyInterface obj2;
/* 假設已有代碼初始化過obj1,接下來 */
obj2 = obj1 as IMyInterface;
if (obj2 != null)
{
obj2.Method1();
}
else
{
//處理錯誤
}
51. 表現給最終用戶的字符串不要使用硬編碼而要使用資源文件替換之。
52. 不要硬編碼可能更改的基于配置的字符串,比如連接字符串。
53. 當需要構建長的字符串的時候,使用StringBuilder不要使用string
54. 避免在結構里面提供方法。
a) 建議使用參數化構造函數
b) 可以重裁操作符
55. 總是要給靜態變量提供靜態構造函數。
56. 能使用早期綁定就不要使用后期綁定。
57. 使用應用程序的日志和跟蹤。
58. 除非在不完全的switch語句中否則不要使用goto語句。
59. 在switch語句中總是要有default子句來顯示信息(Assert)。
int number = SomeMethod();
switch(number)
{
case 1:
Trace.WriteLine("Case 1:");
break;
case 2:
Trace.WriteLine("Case 2:");
break;
default :
Debug.Assert(false);
break;
}
60. 除非在構造函數中調用其他構造函數否則不要使用this指針。
// 正確使用this的例子
public class MyClass
{
public MyClass(string message )
{}
public MyClass() : this("hello")
{}
}
61. 除非你想重寫子類中存在名稱沖突的成員或者調用基類的構造函數否則不要使用base來訪問基類的成員。
// 正確使用base的例子
public class Dog
{
public Dog(string name)
{}
virtual public void Bark( int howLong)
{}
}
public class GermanShepherd : Dog
{
public GermanShe pherd(string name): base (name)
{}
override public void Bark(int howLong)
{
base .Bark(howLong);
}
}
62. 基于模板的時候要實現Dispose()和Finalize()兩個方法。
63. 通常情況下避免有從System.Object轉換來和由System.Object轉換去的代碼,而使用強制轉換或者as操作符替換。
class SomeClass
{}
//避免:
class MyClass <T>
{
void SomeMethod(T t)
{
object temp = t;
SomeClass obj = (SomeClass)temp;
}
}
// 正確:
class MyClass <T> where T : SomeClass
{
void SomeMethod(T t)
{
SomeClass obj = t;
}
}
64. 在一般情況下不要定影有限制符的接口。接口的限制級別通常可以用強類型來替換之。
public class Customer
{…}
//避免:
public interface IList <T> where T : Customer
{…}
//正確:
public interface ICustomerList : IList <Customer>
{…}
65. 不確定在接口內的具體方法的限制條件。
66. 總是選擇使用C#內置(一般的generics)的數據結構。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
精品在线99| 国产欧美久久久| 欧美日韩亚洲视频| 一区精品在线播放| 亚洲欧洲日产国码av系列天堂| 中文字幕在线精品| 一区二区在线高清视频| 国产最新在线| 在线观看精品国产| 91精品久久久久久久久久入口| 日韩精品视频在线免费观看| 国产xxx在线| 国产一卡2卡3卡四卡网站| 国产999在线观看| 一区二区三区精品在线| 久久在线91| 一区二区三区在线播放欧美| 日韩欧美中文字幕在线观看| 91精品国产自产在线观看永久∴| 亚洲一区中文| 欧美日韩国产页| 亚洲电影中文字幕在线观看| 国产欧美日韩在线视频| 日韩欧美在线不卡| 精品无人国产偷自产在线| 亚洲欧洲三级| 中文字幕国产在线| 国产高清精品在线| 热久久精品国产| 中文字幕精品视频在线| 中文字幕国产欧美| 亚洲区中文字幕| 色国产在线视频| 精品久久香蕉国产线看观看gif| 欧美在线日韩精品| 久久久久蜜桃| 一区二区高清在线| 国产手机精品视频| 日韩精品一区二区三区视频播放| www日韩欧美| 不卡在线视频| www.精品av.com| 色综合婷婷久久| 蜜桃精品在线| 精品亚洲成a人片在线观看| 欧美日韩国产一中文字不卡| 国产一级粉嫩xxxx| 国产欧美日韩成人| 国产在线黄色片| 在线亚洲免费| 国产一卡2卡3卡免费网站| 中文字幕在线观看亚洲| 国产一级片网站| 久久久精品99| 久久精品国产视频| 免费看黄资源大全高清| 在线日韩欧美| 欧美日韩国产高清| av三级在线播放| 91久久精品网| 色综合天天综合网国产成人综合天| 久久精品黄色片| 久久久91精品| 日韩你懂的电影在线观看| 麻豆精品99| 日韩欧美综合| 国产欧美综合在线| 亚洲影视资源网| 日韩精品国产欧美| 99久久婷婷| 亚洲欧美伊人| 中文字幕在线精品| 精品视频在线导航| 国产高清精品在线| 亚洲欧美999| 日韩欧美国产高清91| 日韩中文首页| 91精品国产综合久久精品app| 一区二区精品| 日韩精品免费视频一区二区三区| 在线观看国产福利视频| 精品播放一区二区| 欧美日韩成人综合| 欧美三级一区二区三区| 国产成人精品亚洲| 一级片在线播放| 日韩欧美中文在线| 欧美日韩在线观看成人| 天天综合天天| 亚洲a级在线播放观看| 中文字幕 亚洲视频| 欧美wwww| 91精品国产网站| 日韩三级免费观看| 中文字幕日韩第一页| 欧美日韩中文字幕日韩欧美| 欧美不卡视频一区发布| 国产久卡久卡久卡久卡视频精品| 拍真实国产伦偷精品| 久久久99精品久久| 日韩av在线中文字幕| 91精品国产高清| 久久99久久久久| 一级片免费在线| 精品不卡一区二区| 91精品国产91| 国产裸体歌舞团一区二区| 在线视频一区二区三区在线播放| 中文字幕综合在线| 91精品国产91久久久久久三级| www.av中文字幕| 国产成人精品网址| 国产日韩av一区| 亚洲娇小xxxx欧美娇小| 日韩欧美中文| 亚洲免费播放| 日韩欧美国产三级| 欧美日韩视频不卡| 精品在线网站观看| 成人久久久久| 日韩精品三级| 日本国产一区| 日本va欧美va精品发布| 91久久中文| 欧美激情一区二区三区在线| 欧美日韩三级视频| 欧美日韩三级一区| 91久久精品国产91性色69| 亚洲高清不卡一区| 一区二区不卡视频在线观看| 在线中文字幕网站| 国产自产视频| 日韩欧美一级在线播放| 日韩欧美中文字幕公布| 91精品国产网站| 欧美中文字幕精品| 欧美日韩在线国产| 在线观看一区| 国产成人精品日本亚洲专区61| 国产精品一区二区三区免费观看| 91久久精品国产91性色69| 中文字幕第一页在线| 日韩中文字幕视频网| 精品一二线国产| 日韩亚洲欧美中文高清在线| www.91香蕉视频| 欧美日韩免费不卡视频一区二区三区 | 天天综合日日夜夜精品| 不卡视频一区二区三区| 亚洲图片小说综合| 欧美日韩中文字幕综合视频| av免费观看网站| 91精品国产综合久久精品app| 日韩精品手机在线| 日韩国产欧美在线视频| 婷婷中文字幕在线观看| 精品久久久久久无| 99在线精品视频免费观看20| 日韩欧美中文字幕公布| 免费在线国产| 日韩在线视频网| 中文字幕五月天| 日韩精品一二三四区| 大香一本蕉伊线亚洲网| 国产欧美日韩精品在线| 久久激情一区| 国产一级免费| 91精品在线观看视频| 精产国产伦理一二三区| 日韩 欧美 亚洲| 欧美三级视频在线| 91精品免费在线观看| 中文字幕在线观看精品| 中文字幕国产亚洲| 在线看的av| 日韩免费视频| 91精品国产综合久久香蕉最新版| 国产欧美日韩三级| 午夜一区二区三区| 欧美激情视频一区二区三区在线播放 | 国产乱国产乱300精品| 国产一级视频| 国产区视频在线观看| 亚洲国产欧美91| 91精品国产91久久久久久不卡| 国产一二三四| 亚洲中文字幕在线一区| 欧美一级在线免费| 久久蜜桃一区二区| 狠狠色综合色区| 久久精品黄色片| 不卡av免费在线| 国产一二三视频| 日韩视频不卡中文| 国产乱码在线观看| 亚洲欧美视频一区二区三区| 日韩精品在线观| 一区二区视频国产| 成片免费观看| 亚洲第一视频在线观看| 欧美另类久久久品| 国产在线二区| 国产欧美日韩在线看| 欧美 日韩 国产 高清| 国产在线观看91| 欧美日韩国产一区在线| 国产三级视频在线播放线观看| 中文在线日韩| 国产欧美日韩中文字幕在线| 成年人黄国产| 亚洲综合日韩欧美| 欧美日韩午夜在线视频| 国产网站av| 日韩在线视频观看正片免费网站| 国产视频1区| 色猫猫国产区一区二在线视频| 在线日韩欧美| 国产黄色在线播放| 日韩在线中文视频| 亚洲大胆人体av| 在线日韩欧美| www.老鸭窝.com| 国产在线一在线二| 久久夜色精品国产噜噜亚洲av| 久久久精品免费免费| 亚洲欧美日本国产专区一区| 亚洲免费看av| 99精品视频国产| 91精品国产99| 欧美日韩精品不卡| 国产一级在线免费观看| 欧美日韩国产专区| 亚洲va韩国va欧美va精品| 欧美不卡一二三| 中文字幕久精品免费视频| 美国av一区二区| 精品国产1区二区| 国产欧美综合在线观看第十页| 国产在线日韩欧美| 99在线国产| 国产99对白在线播放| 美日韩精品免费视频| 欧美在线视频二区| 高清1区2区| 中文字幕亚洲二区| 91精品国产综合久久久久久漫画| 欧美日韩中文字幕在线视频| 91精品国产色综合久久久蜜香臀| 尤物av一区二区| 久久久久久久久综合| 中文精品在线观看| 亚洲一二三不卡| 免费在线亚洲| 日韩一级免费在线观看| 91久久中文| 91精品999| 亚洲一区导航| 日韩精品久久久| 精产国产伦理一二三区| 久久久精品免费免费| 中文字幕第一页在线播放| 日韩欧美中文字幕一区| 日韩欧美亚洲视频| 中文字幕在线精品| 中文字幕国产在线| 精品久久蜜桃| 亚洲一区日韩在线| 久久久91精品| 国产婷婷一区二区| 亚洲欧美中文字幕在线观看| 一二三区精品福利视频| 免费精品国产自产拍观看| 欧美久久一二三四区| 中文在线日韩| 视频一区日韩| 久久精品不卡| 在线中文字幕视频| 国产最新在线| 中文字幕 日韩 欧美| 色99中文字幕| 亚洲a中文字幕| 久久久久久久久99精品| 日韩精品不卡一区二区| 樱花草www在线| 国产欧美日韩91| 国产福利不卡| 精品成人久久av| 国产亚洲一区字幕| 欧美日韩国产在线| www高清在线视频日韩欧美| 国产欧美日韩不卡| 欧美日韩国产在线观看| 亚洲精品中文字幕乱码三区| 在线日韩精品视频| 日韩欧美一级在线| 黄色在线播放网站| 在线视频色在线| www.老鸭窝.com| 日韩精品视频网站| 欧美国产一区视频在线观看| 欧美日韩国产一二三| 欧美在线日韩精品| av最新网址| 色综合影院在线| 日本不卡一区在线| 蜜桃久久av一区| 欧美日韩国产中文精品字幕自在自线| 欧美日韩高清在线播放| 男人的天堂网av| 日韩精品高清不卡| 日韩中文在线视频| 在线观看免费国产小视频| 高清一区二区| 视频在线一区二区| 欧美大片在线观看一区| 日韩中文字幕网| 亚洲社区在线| 精品日韩视频在线观看| 成人欧美亚洲| 欧美日韩国产首页在线观看| 国产无遮挡在线视频免费观看| 日韩欧美中文字幕在线视频| 91精品视频观看| 亚洲专区一区| 日韩欧美一级视频| 日韩欧美国产免费播放| 97国产视频| 99精品免费观看| 日韩av一区二区在线观看| 国产裸舞福利在线视频合集| 91久久精品网| 国产啊啊啊视频在线观看| 偷窥国产亚洲免费视频| 99国内精品| 亚州福利视频| 中文字幕精品亚洲| 精品欧美日韩| 欧美日韩亚洲一| 日韩一级二级三级精品视频| 久久精品免费看| 日韩在线中文| 91欧美在线| 精品极品三级久久久久| 亚洲综合在线中文字幕| 欧美激情一区二区在线| 日韩欧美国产一二三区| 亚洲福利精品| 91精品国产经典在线观看| 日韩高清不卡| 麻豆精品99| 国产 欧美在线| 亚洲一区中文在线| 国产午夜精品久久| 久久久精品免费免费| 在线视频国内一区二区| 日韩美女视频一区二区在线观看| 在线观看免费国产小视频| 欧美一级久久久久久久久大| 在线视频色在线| 中文精品在线| 精品国产乱码久久久久久蜜臀 | 人成免费在线视频| 国产三级免费观看| 亚洲午夜91| aaa欧美日韩| 国产一级在线免费观看| 精品日韩视频| 久久久精品免费免费| 日韩中文字幕视频在线观看| 欧美婷婷精品激情| 婷婷综合福利| 日韩一级视频在线观看| 国产色综合网| 91精品国产免费| 最近中文字幕在线中文视频| 久久久久久99精品| 国产黄色网页| 中文欧美字幕免费| 一区二区精品免费| 国产乱一区二区| 午夜少妇久久久久久久久| 高清一区二区| 日本不卡一区在线| 一区二区三区中文字幕在线观看| 免费在线视频一级不卡| 中文字幕欧美日韩va免费视频| 日韩视频在线观看视频| 国产男女av| 亚洲福利一区二区三区| 日韩高清在线不卡| 国产最新在线| 欧美日韩成人一区二区| 精品久久电影| 国产91久久久久| 欧美三级一区二区三区| 91精品国产91久久久久青草| 日韩欧中文字幕| 999精品色在线播放| 影音先锋一区二区资源站| 欧美日韩中文字幕在线观看|