枚舉(enum)
用戶定義的整數類型,聲明時(使用enum關鍵字),要指定該枚舉的實例可以包括的一組可以接受的值。
使用枚舉類型的優勢:1.使代碼更易於維護;2.使代碼更清晰;3.使代碼更易於輸入。
用處:枚舉在后台會實例化為派生於基類的、System.Enum的結構,即可以對其調用方法、執行任務。
另外枚舉類型具有性能優勢:.net framework在語法上將枚舉當做結構(一旦代碼編譯好,枚舉就成為基本類型),使用System.Enum靜態方法可以重字符串中獲取枚舉值或者對象引用等。
命名空間(namespace)
提供了一種(邏輯組織)組織相關類和其他類的方式。不允許聲明嵌套在另一個命名空間中的多個部分的命名空間。
命名空間與程序集無關。
using語句
1.可以在源代碼文件頂部使用(僅僅是簡化代碼中對命名空間的引用,文件之間沒有因此而建立物理鏈接,與#include不同)
2.給命名空間或者類指定別名(簡化命名空間書寫):考慮不希望命名空間名稱出現在using指令中,避免與類名沖突
eg:useing 別名 = 命名空間名;
3.在代碼中使用
。。。
Main()方法
C#程序從Main()開始執行,Main()必須是類或者結構的靜態方法,且其返回值必須是int或者void。
對於多個Main()方法的程序在編譯時應制定哪個作為應用程序的入口點(使用/main:所屬類的全名)
傳遞參數---在程序調用時可以讓CLR給Main()方法將命令行參數(一個字符串數組string[] args)作為參數傳遞
在程序運行要運行時給參數賦值(一般可以通過命令行執行 程序后面直接追加參數值)
注釋
源文件內部注釋
常用的注釋:
單行注釋 //。。。
多行注釋/*....*/
XML文檔
根據特定的注釋(識別其中的XML標記)自動創建XML格式的文檔說明
注釋要求:
1.都為單行注釋,且以///開頭
2.可以包含XML標記
C#編譯器將XML元素從特定的注釋中提取出來生成一個XML文件(需要在編譯時指定/doc參數,eg: csc /t:library /doc:MyXML.xml MyLibrary.cs )
T:類型,F:字段,M:成員
C#預處理器指令
作用:影響編譯過程,不會轉化為可執行代碼中的命令。
預處理器指令不用分號結束,一般一行只有一條指令,編譯器處理完一條指令后,就會假定下一條指令在下一行上。
預處理器指令都以#開頭
#define 與 #undef
#define mark 告訴編譯器存在指定名稱(這里是mark)的符號,類似於聲明變量,但是這個變量沒有真正的值,此變量不是實際代碼的一部分,只在編譯器編譯代碼時存在。
#undef mark 刪除符號(若符號不存在則該語句無效,若符號存在則刪除該符號)
一般#define #undef 放在源文件開頭位置,聲明在編譯任何對象的代碼前。
#if #elif #else #endif
指定編譯器是否要編譯某個模塊。條件編譯(conditional compilation)實現的其中的一種方式
#if mark //這里判斷mark是否存在,即#define是否定義,#elif #else 語法類似
//code //存在mark則編譯這里
#endif
#if和#elif支持邏輯運算符(!、==、!=、||、&&)
eg:#if mark && (mark1 == false) //這里判斷mark存在且mark1不存在為true
#warning 和 #error
編譯器通過#warning和#error給用戶顯示警告或者錯誤信息(#。。。后的文本),並進行處理(#warning后會繼續,#error后會退出)
eg: #warning this is a warning!
#region 和 #endregion
把一段代碼標記為給定名稱的一個塊。
#line
改變編譯器在警告和錯誤信息中顯示的文件名和行號
#pragma
可以抑制或者還原指定的編譯警告。(可以在類或者方法級別執行)
C#編程規則
標識符規則
1.必須以字母或者下划線開頭,可以包含數字
2.不能使用關鍵字(若必須使用關鍵字 則可以使用@前綴)
標識符可以使用unicode字符 語法 \uXXXX,XXXX為Unicode字符的4位16進制編碼
用法約定
規則應是一個正確的決策,而不是一種束縛。
1.命名約束
名稱應直接反映對象的功能(一般不反映數據類型),且不與其他名稱沖突。
(1)大小寫
命名空間、類、基類中的成員、常量等使用Pascal形式,最好不用下划線
類中所有的私有成員字段使用camel(成員前綴用一條下划線)形式;傳遞給方法的參數都應使用camel形式;區分同名對象的---屬性(Pascal)封裝字段(camel);
私有成員總是使用camel形式,公有的或者受保護的使用Pascal形式;
(2)名稱的風格應保持一致
(3)名稱的命名空間 <CompanyName>.<TechnologyName>
(4)名稱與關鍵字
屬性與方法的使用
屬性:使用情況
1.客戶端代碼讀取值,最好不用只寫屬性,可使用方法
2.讀取值時間不應太長,否則使用方法
3.可按照任意順序設置屬性
4.讀取值不應出現負效應
5.任意順序讀取屬性效果應相同
字段的用法
字段總是私有的,某些情況下可以將常量或者只讀字段設置為公有的。
於
2016年1月10日17:17:45