下表包含 c++ 和 c# 功能之間的重要比較。如果您是一位 c++ 程序員,此表將為您提供這兩種語言的最重要差異。
注意 c++ 和 c# 項目派生于不同的項目模型。有關 c++ 和 c# 項目之間差異的信息,請參見項目中的項管理和使用解決方案資源管理器。
功能 參考主題
繼承:類只能繼承一個基類中的實現。另外,類或接口可以實現多個接口。
數組:聲明 c# 數組和聲明 c++ 數組的語法不同。在 c# 中,“[]”標記出現在數組類型的后面。
bool 類型:bool 類型和其他類型(特別是 int)之間沒有轉換。
long 類型:在 c# 中,long 數據類型為 64 位,而在 c++ 中為 32 位。
struct 類型:在 c# 中,類和結構在語義上不同。struct 是值類型,而 class 是引用類型。
switch 語句:與 c++ 中的 switch 語句不同,c# 不支持從一個 case 標簽貫穿到另一個 case 標簽。
delegate 類型:委托與 c++ 中的函數指針基本相似,但前者具有類型安全,是安全的。
從派生類調用重寫基類成員。
使用 new 修飾符顯式隱藏繼承成員。
聲明重寫方法需要有 override 關鍵字。
預處理器指令用于條件編譯。c# 中不使用頭文件。
異常處理:使用 finally 語句。
c# 運算符:c# 支持其他運算符,如 is 和 typeof。它還引入了某些邏輯運算符的不同功能。
關鍵字 extern 的使用。
關鍵字 static 的使用。
在構造基類上替代 c++ 初始化列表的方法。
c# 程序的常規結構:命名空間、類、結構、委托和枚舉。
main 方法和 c++ 中的 main 函數的聲明方式不同。
方法參數:c# 支持 ref 和 out 參數,這兩個參數取代指針通過引用傳遞參數。
在 c# 中只在不安全模式下才使用指針。 unsafe
在 c# 中以不同的方式執行重載運算符。
字符串:c# 字符串不同于 c++ 字符串。 string
foreach 關鍵字使您得以循環訪問數組和集合。 foreach, in
c# 中沒有全局方法和全局變量:方法和變量必須包含在類型聲明(如 class 或 struct)中。
c# 中沒有頭文件和 #include 指令:using 指令用于引用其他未完全限定類型名的命名空間中的類型。
c# 中的局部變量在初始化前不能使用。
析構函數:在 c# 中,不能控制析構函數的調用時間,原因是析構函數由垃圾回收器自動調用。
構造函數:與 c++ 類似,如果在 c# 中沒有提供類構造函數,則為您自動生成默認構造函數。該默認構造函數將所有字段初始化為它們的默認值。
c# 不支持位域。 c++ 位域
c# 的輸入/輸出服務和格式設置依賴于 .net framework 的運行時庫。
在 c# 中,方法參數不能有默認值。如果要獲得同樣的效果,請使用方法重載。
|
新聞熱點
疑難解答