---
# System prepended metadata

title: 初階Coding Style

---

# 初階Coding Style

# 1.c#三大特性

(1)跨平台

(2)強型別

(3)物件導向：物件導向程式設計是種具有物件概念的程式程式設計典範，同時也是一種程式開發的抽象方針。它可能包含資料、屬性、程式碼與方法。物件則指的是類別的實例。它將物件作為程式的基本單元，將程式和資料封裝其中，以提高軟體的重用性、靈活性和擴充性，物件裡的程式可以存取及經常修改物件相關連的資料。



# 2.內置型別

使用C#內置型別，而非.NET Class library

用short 非System.Int16

用int 非System.Int32

用long 非System.Int64

用string 非 System.String



# 3.方案結構

方案 →專案 →組件 →命名空間 →cs檔 →類別 →類別成員



# 4.檔案限制

一個cs檔只放一個類，除了巢狀類別、POCO(允許)、Partial(禁用)



# 5.類別成員

(1)欄位 用private

(2)屬性 可存取 用

(3)常數

(4)方法



# 6.存取修飾字

- [public](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/public): The type or member can be accessed by any other code in the same assembly or another assembly that references it.

- [private](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/private): The type or member can be accessed only by code in the same `class` or `struct`.

- [protected](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/protected): The type or member can be accessed only by code in the same `class`, or in a `class` that is derived from that `class`.

- [internal](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/internal): The type or member can be accessed by any code in the same assembly(組件), but not from another assembly.

- [protected internal](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/protected-internal): The type or member can be accessed by any code in the assembly in which it's declared, or from within a derived `class` in another assembly.

- [private protected](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/private-protected): The type or member can be accessed only within its declaring assembly, by code in the same `class` or in a type that is derived from that `class`.

  [官方文件](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/access-modifiers)



# 7.輸出類型

(1)Windows應用程式：WinForm類

(2)主控台應用程式：沒UI畫面，用console操控的

(3)類別庫：產出dll



# 8.魔術數字

(1)列舉

(2)常數

(3)區域變數



# 9.命名規則

(1)常數→全大寫

(2)區域變數、方法參數→小寫開頭駝峰

(3)其餘→大寫開頭駝峰

(4)方法：以動詞開頭

(5)類別、類別成員：以名詞開頭

(6)bool：以Is Can Has…開頭



(7)只有方法內的區域變數可以使用temp這一類的通用暫時變數命名，禁止在類別級成員使用

(8)Interface的命名一律以I開頭，泛型的型別參數一律使用<T>



# 10.空字串

空字串使用string.Empty



# 11.工作清單

「檢視」→「工作清單」

(1)//TODO

(2)//UNDONE

(3)//HACK



