iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 5
0

「讀程式碼的人清楚看得懂,好維護,就是一個好的程式碼!」

有兩位前輩在我提出 「到底怎麼樣才是一個好的程式碼?越短越好嗎?」 時都給我這樣的回答,而我也把這句話奉為圭臬。思考該不該用註解? 該怎麼命名? 要不要多命名一個變數拆行寫? 時,我都會以這句話為出發點思考。簡潔仍是需要追求的,但前提是要讓人一眼就懂。

行有行規,寫程式碼也有一些基本規範,需要規範原因跟上面很像:

1.讓程式可以跑
2.讓程式好讀

以下是C#語言的基本撰寫規則與命名限制

撰寫規則

1.C#是大小寫敏感的:
Apple跟apple是代表不一樣的東西喔~

2.C#每行需要用 ; 結尾:
沒有為什麼,就是這樣XD

3.該縮排要縮排:
每一組{}都代表一個程式碼區塊,每一層的內容都要往內縮一排方便閱讀
https://ithelp.ithome.com.tw/upload/images/20190903/20120055svjFXsFlJf.png

4.主控台(console模式)裡,一個Main()只能出現在一個類別內 :進入點只有一個

命名規則或習慣

1.不能以數字開頭:
第一個字可以用大寫寫英文、底線、中文,但考量編碼及國際接軌問題,不建議使用中文。第二個字以後可以是英文、數字、底線、中文。IDE會提醒你的,不用擔心命名錯誤。

2.除了@以及 _ 外不能使用特殊符號命名:
@用法請見第三點。 _ 可以寫在變數最前方(請見第五點)或是兩個單字中間。其他如空格、&等符號都不能使用。

3.保留字不可當變數命名使用:
除非在前方加上@,但仍然不建議。C#的詳細保留字請見MSDN:C# 關鍵字

4.變數名字要取的有意義:
如果你1-10個變數分別是A1、A2、A3....A10,讀的人並無法一眼了解變數意義,可讀難度提升。 ~~還有被夥伴抓去打的可能~~。有意義的名字如顧客編號:CustomerID、產品價格ProductPrice。

5.Field變數最前方習慣加底線 :
如: _apple

6.使用Pascal或是Camel 命名法:
- Pascal命名法:每一單字字首字母大寫。如:AppleCake
→使用時機:Namespace/Class/Type/Method/Property/Event/Enum/Interface(前方要加大寫I,如IAppleCake)
- Camel 命名法:第一個字的字母小寫,其餘每一單字字首字母大寫。如:appleCake
→使用時機:參數Parameter/變數命名variable/欄位Field

7.其他你的團隊的命名規範

另外關於Coding Style的部分,初學者應該還不會有這個困擾。團隊若要規範Coding Style,可以參考StyleCop這個工具喔~

====其他補充====
感謝下方留言處優悠大大的分享,#region跟#endregion可以自訂縮放範圍,讓程式碼更好讀唷!
寫法:

#region

要收合的程式碼寫這

#endregion

效果如下方這樣:

https://ithelp.ithome.com.tw/upload/images/20190906/20120055QUGPbBpBJz.png

https://ithelp.ithome.com.tw/upload/images/20190906/20120055CgvOIYPrAi.png

https://ithelp.ithome.com.tw/upload/images/20190906/20120055aXQEsI1gXV.png

https://ithelp.ithome.com.tw/upload/images/20190913/20120055VunwYdPTmj.png


上一篇
Day04-用C#寫出第一個Hello World吧!(Console模式/Visual Studio)
下一篇
Day06-C#變數與變數宣告、常數與常數宣告、var、型別轉換
系列文
C#與ASP.Net入門-我要成為工程師!!31

2 則留言

2
優悠
iT邦新手 4 級 ‧ 2019-09-06 09:16:23

#region 程式一

#endregion

這個自訂縮放範圍,也能讓程式碼好讀!

噢噢噢感謝分享!這個好實用喔!

0
小朱
iT邦新手 4 級 ‧ 2019-09-13 17:25:24

#region 這一段的名稱
...
#endregion

這樣可以給region名稱,不用在找程式時還要展開。

原來上面優悠大大是這個意思!!!感謝補充!!!立馬加個示意圖XD

我要留言

立即登入留言