韩剧1988免费观看全集_久久影视三级福利片_亚洲视频在线观看免费_在线观看欧美日韩_国产亚洲激情在线_亚洲精品美女久久久_欧美国产日韩一区二区在线观看_91在线观看免费高清完整版在线观看_日韩av免费看_国产又爽又黄的激情精品视频_琪琪亚洲精品午夜在线_欧美性猛xxx_不卡毛片在线看_国产亚洲日本欧美韩国_91国内在线视频_精品国产福利视频

當(dāng)前位置:蘿卜系統(tǒng)下載站 > 技術(shù)開(kāi)發(fā)教程 > 詳細(xì)頁(yè)面

C#編碼規(guī)范--編碼習(xí)慣

C#編碼規(guī)范--編碼習(xí)慣

更新時(shí)間:2022-06-26 文章作者:未知 信息來(lái)源:網(wǎng)絡(luò) 閱讀次數(shù):

1. 避免將多個(gè)類(lèi)放在一個(gè)文件里面。

2. 一個(gè)文件應(yīng)該只有一個(gè)命名空間,避免將多個(gè)命名空間放在同一個(gè)文件里面。

3. 一個(gè)文件最好不要超過(guò)500行的代碼(不包括機(jī)器產(chǎn)生的代碼)。

4. 一個(gè)方法的代碼長(zhǎng)度最好不要超過(guò)25行。

5. 避免方法中有超過(guò)5個(gè)參數(shù)的情況。使用結(jié)構(gòu)來(lái)傳遞多個(gè)參數(shù)。

6. 每行代碼不要超過(guò)80個(gè)字符。

7. 不要手工的修改機(jī)器產(chǎn)生的代碼。

a) 如果需要編輯機(jī)器產(chǎn)生的代碼,編輯格式和風(fēng)格要符合該編碼標(biāo)準(zhǔn)。

b) Use partial classes whenever possible to factor out the maintained portions.

8. 避免利用注釋解釋顯而易見(jiàn)的代碼。

a) 代碼應(yīng)該可以自解釋。好的代碼由可讀的變量和方法命名因此不需要注釋。

9. Document only operational assumptions, algorithm insights and so on.

10. 避免使用方法級(jí)的文檔。

a) 使用擴(kuò)展的API文檔說(shuō)明之。

b) 只有在該方法需要被其他的開(kāi)發(fā)者使用的時(shí)候才使用方法級(jí)的注釋。(在C#中就是///)

11. 不要硬編碼數(shù)字的值,總是使用構(gòu)造函數(shù)設(shè)定其值。

12. 只有是自然結(jié)構(gòu)才能直接使用const,比如一個(gè)星期的天數(shù)。

13. 避免在只讀的變量上使用const。如果想實(shí)現(xiàn)只讀,可以直接使用readonly。

public class MyClass

{

public readonly int Number;

public MyClass(int someValue)

{

Number = someValue;

}

public const int DaysInWeek = 7;

}

14. 每個(gè)假設(shè)必須使用Assert檢查

a) 平均每15行要有一次檢查(Assert)

using System.Diagnostics;



object GetObject()

{…}



object obj = GetObject();

Debug.Assert(obj != null);

15. 代碼的每一行都應(yīng)該通過(guò)白盒方式的測(cè)試。

16. 只拋出已經(jīng)顯示處理的異常。

17. 在捕獲(catch)語(yǔ)句的拋出異常子句中(throw),總是拋出原始異常維護(hù)原始錯(cuò)誤的堆棧分配。

catch(Exception exception)

{

MessageBox.Show(exception.Message);

throw ; //和throw exception一樣。

}

18. 避免方法的返回值是錯(cuò)誤代碼。

19. 盡量避免定義自定義異常類(lèi)。

20. 當(dāng)需要定義自定義的異常時(shí):

a) 自定義異常要繼承于ApplicationException。

b) 提供自定義的序列化功能。

21. 避免在單個(gè)程序集里使用多個(gè)Main方法。

22. 只對(duì)外公布必要的操作,其他的則為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. 使應(yīng)用程序集盡量為最小化代碼(EXE客戶程序)。使用類(lèi)庫(kù)來(lái)替換包含的商務(wù)邏輯。

26. 避免給枚舉變量提供顯式的值。

//正確方法

public enum Color

{

Red,Green,Blue

}

//避免

public enum Color

{

Red = 1,Green = 2,Blue = 3

}

27. 避免指定特殊類(lèi)型的枚舉變量。

//避免

public enum Color : long

{

Red,Green,Blue

}

28. 即使if語(yǔ)句只有一句,也要將if語(yǔ)句的內(nèi)容用大括號(hào)擴(kuò)起來(lái)。

29. 避免使用trinary條件操作符。

30. 避免在條件語(yǔ)句中調(diào)用返回bool值的函數(shù)。可以使用局部變量并檢查這些局部變量。

bool IsEverythingOK()

{…}

//避免

if (IsEverythingOK ())

{…}

//替換方案

bool ok = IsEverythingOK();

if (ok)

{…}

31. 總是使用基于0開(kāi)始的數(shù)組。

32. 在循環(huán)中總是顯式的初始化引用類(lèi)型的數(shù)組。

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的類(lèi)中總是將public 和 protected的方法標(biāo)記成virtual的。

36. 除非使用interop(COM+ 或其他的dll)代碼否則不要使用不安全的代碼(unsafe code)。

37. 避免顯示的轉(zhuǎn)換,使用as操作符進(jìn)行兼容類(lèi)型的轉(zhuǎn)換。

Dog dog = new GermanShepherd();

GermanShepherd shepherd = dog as GermanShepherd;

if (shepherd != null )

{…}

38. 當(dāng)類(lèi)成員包括委托的時(shí)候

a) Copy a delegate to a local variable before publishing to avoid concurrency race

condition.

b) 在調(diào)用委托之前一定要檢查它是否為null

public class MySource

{

public event EventHandler MyEvent;

public void FireEvent()

{

EventHandler temp = MyEvent;

if(temp != null )

{

temp(this,EventArgs.Empty);

}

}

}

39. 不要提供公共的事件成員變量,使用事件訪問(wèn)器替換這些變量。

public class MySource

{

MyDelegate m_SomeEvent ;

public event MyDelegate SomeEvent

{

add

{

m_SomeEvent += value;

}

remove

{

m_SomeEvent -= value;

}

}

}

40. 使用一個(gè)事件幫助類(lèi)來(lái)公布事件的定義。

41. 總是使用接口。

42. 類(lèi)和接口中的方法和屬性至少為2:1的比例。

43. 避免一個(gè)接口中只有一個(gè)成員。

44. 盡量使每個(gè)接口中包含3-5個(gè)成員。

45. 接口中的成員不應(yīng)該超過(guò)20個(gè)。

a) 實(shí)際情況可能限制為12個(gè)

46. 避免接口成員中包含事件。

47. 避免使用抽象方法而使用接口替換。

48. 在類(lèi)層次中顯示接口。

49. 推薦使用顯式的接口實(shí)現(xiàn)。

50. 從不假設(shè)一個(gè)類(lèi)型兼容一個(gè)接口。Defensively query for that interface.

SomeType obj1;

IMyInterface obj2;



/* 假設(shè)已有代碼初始化過(guò)obj1,接下來(lái) */

obj2 = obj1 as IMyInterface;

if (obj2 != null)

{

obj2.Method1();

}

else

{

//處理錯(cuò)誤

}

51. 表現(xiàn)給最終用戶的字符串不要使用硬編碼而要使用資源文件替換之。

52. 不要硬編碼可能更改的基于配置的字符串,比如連接字符串。

53. 當(dāng)需要構(gòu)建長(zhǎng)的字符串的時(shí)候,使用StringBuilder不要使用string

54. 避免在結(jié)構(gòu)里面提供方法。

a) 建議使用參數(shù)化構(gòu)造函數(shù)

b) 可以重裁操作符

55. 總是要給靜態(tài)變量提供靜態(tài)構(gòu)造函數(shù)。

56. 能使用早期綁定就不要使用后期綁定。

57. 使用應(yīng)用程序的日志和跟蹤。

58. 除非在不完全的switch語(yǔ)句中否則不要使用goto語(yǔ)句。

59. 在switch語(yǔ)句中總是要有default子句來(lái)顯示信息(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. 除非在構(gòu)造函數(shù)中調(diào)用其他構(gòu)造函數(shù)否則不要使用this指針。

// 正確使用this的例子

public class MyClass

{

public MyClass(string message )

{}

public MyClass() : this("hello")

{}

}

61. 除非你想重寫(xiě)子類(lèi)中存在名稱沖突的成員或者調(diào)用基類(lèi)的構(gòu)造函數(shù)否則不要使用base來(lái)訪問(wèn)基類(lèi)的成員。

// 正確使用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. 基于模板的時(shí)候要實(shí)現(xiàn)Dispose()和Finalize()兩個(gè)方法。

63. 通常情況下避免有從System.Object轉(zhuǎn)換來(lái)和由System.Object轉(zhuǎn)換去的代碼,而使用強(qiáng)制轉(zhuǎn)換或者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. 在一般情況下不要定影有限制符的接口。接口的限制級(jí)別通常可以用強(qiáng)類(lèi)型來(lái)替換之。

public class Customer

{…}

//避免:

public interface IList<T> where T : Customer

{…}

//正確:

public interface ICustomerList : IList<Customer>

{…}

65. 不確定在接口內(nèi)的具體方法的限制條件。

66. 總是選擇使用C#內(nèi)置(一般的generics)的數(shù)據(jù)結(jié)構(gòu)。

溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

本類(lèi)教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
午夜欧美在线| 校园春色亚洲| 日韩欧美在线综合| 欧美片网站免费| 日韩精品小视频| 成人日韩在线| 麻豆传媒在线完整视频| 中日韩免视频上线全都免费| 国产成人精品av在线观| www.成人.com| 欧美艾v福利视频在线观看| 国产.com| 日韩在线一区二区三区| 四虎免费在线观看| 欧美在线播放一区二区| 日本中文字幕不卡| 一区二区三区国产豹纹内裤在线| 少妇av片在线观看| 中国女人内谢25xxxx免费视频| 亚洲精品av在线| 黑人精品一区二区| 欧美一级二级三级| 亚洲电影有码| 中文字幕精品三区| 偷拍自拍一区| 久久精品电影一区二区| 成人av动漫在线观看| 久久精品亚洲精品| 欧美激情精品久久久久久蜜臀| 日本久久一区| 一二三四区在线观看| 国产欧美日本亚洲精品一4区| 俄罗斯男人又粗又大| 免费看黄视频网站| 香港三级韩国三级日本三级| 天天色天天综合网| av一区二区三区在线| 五十路亲子中出在线观看| 国产经典一区二区三区| av不卡一区二区三区| 亚洲福利在线观看| www.超碰在线观看| 国产毛片毛片毛片毛片| 国产自产女人91一区在线观看| 国产三级自拍视频| 一道本一区二区| 亚洲女人视频| 亚洲午夜精品久久久久久app| 欧美国产一区视频在线观看| 亚洲欧美国产精品va在线观看| 日韩欧美精品三级| 久久久久亚洲av成人无码电影| 欧美午夜电影在线观看| 久久久久成人片免费观看蜜芽| 亚洲欧洲日韩国产| 国产欧美一区二区精品性色| 日韩美脚连裤袜丝袜在线| 99re只有精品| 成人网18免费网站| 无码av天堂一区二区三区| 日韩高清不卡在线| 99精品视频在线观看免费| 少妇被狂c下部羞羞漫画| 久久青草视频| 污污的视频在线观看| 中文字幕日韩一级| 久久成年人网站| 欧洲天堂在线观看| 国产av无码专区亚洲a∨毛片| 一区二区三区四区视频在线| 亚洲一区二区视频在线| 中文字幕一区二区三区蜜月| 亚洲一区电影777| 国产毛片一区| 瑟瑟在线观看| 91精品国产高清一区二区三区蜜臀| 久久久久久999| 国产成人精品一区二区三区免费| 加勒比色综合久久久久久久久| 1024手机在线观看你懂的| 成年人黄色片视频| 亚洲精品亚洲人成在线| 性无码专区无码| 国产日韩欧美在线看| 国产一区二区视频在线免费观看| 在线电影看在线一区二区三区| 免费av网址在线| av在线视屏| 亚洲男人的天堂在线aⅴ视频| 久久久久久久久久久久久久国产| 中文字幕在线亚洲精品| 欧美日本久久| 国产精品国内视频| 国产精品久久久久桃色tv| 欧美激情福利视频在线观看免费| 日本一区二区三区在线观看| 综合激情五月婷婷| 国产亚洲欧美日韩高清| 日本一区精品久久久久影院| 亚洲日本在线天堂| 亚洲小说春色综合另类电影| 国产亚洲美女精品久久久| 91久久线看在观草草青青| 日韩欧美一二三| 亚洲激情网站| 一级精品视频在线观看宜春院| 国产麻豆9l精品三级站| 午夜免费播放观看在线视频| 人人干人人干人人干| 3d黄动漫网站| 7777精品伊人久久久大香线蕉的| 99久久精品免费看| 久久国产精品99久久久久久丝袜| 国产av一区二区三区精品| 女一区二区三区| 中国成人亚色综合网站| 欧美日韩免费看片| 久久天天久久| 国产香蕉成人综合精品视频| 一区二区三区中文字幕电影| 国产精品劲爆视频| 国产精品成人国产乱| 国产女人被狂躁到高潮小说| 国内精久久久久久久久久人| 亚洲欧美日韩精品久久| 久久精品视频免费看| 黄色动漫网站| 亚洲成人偷拍| 少妇欧美激情一区二区三区| 视频一区二区三区国产| 国产无遮挡在线视频免费观看| 中国女人内谢69视频| 国产精品久久久久久av福利软件| 成人av资源网站| 91青青草免费在线看| 成年人免费观看的视频| 亚洲乱码在线观看| 九九久久电影| 成人动漫免费在线观看| 中文字幕日本欧美| 国产精品一区二区精品视频观看| 久久精品五月天| 精品一区二区三区视频在线观看| 国外成人福利视频| 欧美激情女人20p| 欧洲三级视频| 91精品黄色| 992tv成人国产福利在线| 在线观看视频你懂的| 天堂中文在线观看视频| 夜夜狠狠擅视频| 国产亚洲亚洲国产一二区| asian性开放少妇pics| 国产精品6666| 欧美高清性xxxxxxx| 老司机在线永久免费观看| 国产美女视频免费看| 欧美xxxxbb| av网站免费大全| 日韩欧美在线综合| 国产精品亚洲精品| 黄色一级片免费在线观看| www.日本在线观看| 欧美成人一区二区三区电影| 精品国产a一区二区三区v免费| 亚洲一区二区电影| 99国产精品视频免费观看一公开| 欧美精品一二三四区| 黑森林国产精品av| 精品久久久亚洲| 国产欧美日韩在线观看视频| 久久久精品欧美丰满| 欧美二区乱c黑人| 性一交一乱一区二区洋洋av| 精品亚洲一区二区三区四区五区| 亚洲综合欧美日韩| 在线 亚洲欧美在线综合一区| 欧美黄色一区| 亚洲福利网站| 国内一区二区视频| 一级黄色片播放| 91久久精品日日躁夜夜躁欧美| 日韩成人黄色| 久久国产精品1区2区3区网页| 能在线观看的av网站| 精东传媒在线观看| 欧美 日本 亚洲| 乐播av一区二区三区| av资源亚洲| 久久精品视频va| 999久久久精品视频| 国产精品对白交换视频| 黄频网站在线观看| 国产精品二区三区| 日韩黄色三级在线观看| 国产日韩欧美亚洲| 蜜桃一区二区三区在线| 91天堂在线观看| 天天操天天射天天色| 高清视频在线观看三级| 日韩欧美一区二区三区久久婷婷| 狠狠色综合色综合网络| zztt21.su黑料网站| 天天爱天天做天天操| 成人网18免费看| 天天色综合成人网| 欧美精品一级二级三级| 亚洲在线日韩| 亚洲精品一品区二品区三品区| 91精品久久久久久久久99蜜臂| 日韩精品免费在线观看| 精品一二线国产| 成人听书哪个软件好| 三级免费网站| 久久久久久久性潮| 国产精品美乳在线观看| 555www成人网| 2020日本不卡一区二区视频| 福利小视频网站| 黄色国产网站在线播放| 久久久久久高潮国产精品视| 一区二区亚洲精品| 91另类视频| 奇米888一区二区三区| 国产精品久久久久白浆| 欧美肉大捧一进一出免费视频| 日韩在线视频观看| 国内精品久久久久久久影视简单| 国产精品入口免费软件| 另类一区二区| 中国一级大黄大黄大色毛片| 26uuu久久综合| 狠狠躁夜夜躁人人爽天天高潮| 在线观看av中文| 2020欧美日韩在线视频| 欧美成人在线免费| 国产福利一区二区三区在线视频| 国产精品国产三级国产专播品爱网| 成人免费视频a| 99视频热这里只有精品免费| 免费观看一区二区三区毛片| 国产大片精品免费永久看nba| 日日草天天干| 国产v日韩v欧美v| 一区二区三区视频免费观看| 久久精品国产99精品国产亚洲性色| 国产 中文 字幕 日韩 在线| 在线免费观看毛片| 中文字幕av高清| 成人午夜又粗又硬又大| 中文写幕一区二区三区免费观成熟| 国产在线更新| 久久黄色免费网站| 亚洲精品国产suv一区88| 91精品国产66| 不卡一区二区三区四区五区| 亚洲精品日韩综合观看成人91| 日韩中文字幕亚洲一区二区va在线| 91黑丝高跟在线| 户外露出精品视频国产| 麻豆福利视频| 三级一区在线视频先锋| 欧美日韩在线视频首页| 亚洲国产精品综合| 亚洲高清福利视频| 欧美精品自拍偷拍动漫精品| 国产亚洲欧美另类一区二区三区| 九九九在线观看视频| 神马午夜电影一区二区三区在线观看| 国产欧美日韩另类一区| 亚洲国产精品久久一线不卡| 久久精品国产精品亚洲| 天堂av一区二区三区在线播放| 92看片淫黄大片一级| 美日韩丰满少妇在线观看| 欧美视频精品全部免费观看| 成人晚上爱看视频| 九九热在线视频| www.国产三级| 视频三区在线观看| 狼人天天伊人久久| 国产三级三级在线观看| 欧美日韩中国免费专区在线看| 国产精品美女午夜av| 亚洲三级黄色在线观看| 成人在线播放网址| 中文字幕精品一区二区精| 午夜免费高清视频| 国产露脸国语对白在线| 一区二区三区久久| 国产精品电影一区二区| 狠狠色henhense| 亚洲色图17p| 色妞ww精品视频7777| 亚洲一级特黄毛片| 亚洲在线观看网站| 国产精品115| 丁香激情视频| 最新黄网在线观看| 国产一区精品视频| 亚洲最大av| 在线日韩一区二区| 国产伦精品一区二区三区高清| 亚洲av无码国产精品久久不卡| 欧美精品videosex性欧美| 国产精品久久午夜夜伦鲁鲁| 日韩av在线免费观看不卡| 中文字幕の友人北条麻妃| 在线亚洲欧美| 亚洲人妖av一区二区| 国产一区深夜福利| eeuss影院网站免费观看| 91婷婷韩国欧美一区二区| 91在线播放观看| 国产日韩精品一区二区三区在线| 久久成人高清| 免费av在线网址| 色婷婷.com| 色av一区二区三区| 欧美精品在线视频观看| 99久久国产免费| 一区二区日韩| 女人和拘做爰正片视频| 日日夜夜免费精品视频| 4hu四虎永久在线影院成人| 日本福利视频在线观看| 国产成人精品影院| 国产精品50页|