1、命名空間的別名:using A = NamespaceZ.NamespaceY.NamespaceX; using指令不會出現累積現象,而是獨立計算的
extern alias AssemblyName ,使用的時候 為AssemblyName::Namespace.MethodName
2、Main進入點,如下為四種合法簽名:
static void Main(){}
static int Main() {}
static void Main(string[] args) {}
static int Main(string[] args) {}
Main必須是靜態,而且是私人的,儘管沒有要求這麼做
3、當參考型別不再需要的時候,把它們設定為null
4、在實值型別聲明中添加類型修飾符?就可以聲明一個可空類型,如下所示
double? variable1 = null
計算可空類型
double variable2 = variable1 ?? 0
5、C#可以使用的預先處理命令
#define #undef 聲明式前置處理器指令,用來分別定義預先處理符號和取消前置處理器符號的定義,必須放在任何原始碼之前
文法:#define identifier #undef identifier
#if #else #elif #endif 條件式前置處理器指令,條件式前置處理器指令是以#if開始,#endif結束。介於中間的#else和#elseif是可選的
#line 修改編譯器錯誤和錯誤報表中的行數
#line line_number source_filename
#line default 取消前面設定的任何#line指令,將行號設為自然行號
#line hidden 與行號無關,在單步偵錯工具時非常有用
#error #warning 診斷指令,#error指令阻止程式順利通過編譯;#warning指令不會阻止程式順利通過編譯,除非設定“將警告視為錯誤”
文法:#error error_message #waring error_mesaage
#region #endregion
#pragma 禁用和啟用編譯警告
#pragma waring disable warning_list
#pragma warning restore warning_list
6、短路計算&&和||
7、嵌套類
私人的嵌套類只能在外部類的內部執行個體化。通過嵌套類的建構函式提供外部對象的訪問,即給內部類的建構函式傳遞一個外部對象的引用作為參數,然後,在嵌套類的內部就可以使用該引用來訪問外部對象的執行個體成員
8、按位枚舉
使用按位與運算子確認一個標記是否存在