溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#與C++的區(qū)別總結

發(fā)布時間:2020-08-06 04:08:14 來源:網絡 閱讀:2256 作者:老G 欄目:開發(fā)技術

從語法上看,C#吸收了VB,C++,Java等語言的優(yōu)點,改進了不足,加入了大量實用特性。C#確實是優(yōu)秀的語言,海神也讓人敬仰(這大爺一把年紀還是以寫代碼為樂趣)。


本篇沒有高級語法部分,只有基礎語法和OOP。


基礎語法:

  • 兩種布爾邏輯運算符。侃:有意思

  • 字符串格式化打印。侃:好,這才是給人用的API

  • 數(shù)組:聲明 C# 數(shù)組和聲明 C++ 數(shù)組的語法不同。在 C# 中,“[]”標記出現(xiàn)在數(shù)組類型的后面。侃:C#的數(shù)組不錯,更直觀,里面也有更多的語法糖。

  • bool 類型:bool 類型和其他類型(特別是 int)之間沒有轉換。侃:好

  • struct 類型:在 C# 中,類和結構在語義上不同。struct 是值類型,而 class 是引用類型。侃:很好,值類型和引用類型都很有用,要不然C++也不會折騰什么POD。

  • switch 語句:與 C++ 中的 switch 語句不同,C# 不支持從一個 case 標簽貫穿到另一個 case 標簽。侃:很好,switch貫穿寫法絕大部分都是漏寫了break

  • delegate 類型:委托與 C++ 中的函數(shù)指針基本相似,但前者具有類型安全,是安全的。侃:極好,C#最大賣點之一,委托非常優(yōu)雅的定義了回調,相比而言C++里各種函數(shù)指針類型定義簡直要吐

  • 預處理器指令用于條件編譯。C# 中不使用頭文件。侃:很好,另外鄙視C++拿頭文件當文檔的

  • 異常處理:使用 finally 語句。侃:好

  • 非轉義字符串。侃:極好,這才是給人讀的字符串

  • C# 運算符:C# 支持其他運算符,如 is 和 typeof。它還引入了某些邏輯運算符的不同功能。侃:好

  • Main 方法和 C++ 中的 main 函數(shù)的聲明方式不同。另外,比較每種語言的命令行參數(shù)的使用。侃:好,終于不用為老譚吵架了

  • 方法參數(shù):C# 支持 ref 和 out 參數(shù),這兩個參數(shù)取代指針通過引用傳遞參數(shù)。侃:極好,顯式調用,這比C++高的不知道哪里去了

  • 在 C# 中只在不安全模式下才使用指針。侃:好,當年Java因為沒指針推銷被一通噴,只好假裝有指針。這有利于推銷。

  • C# 中的局部變量在初始化前不能使用。侃:好

  • ///文檔注釋。侃:好

  • 函數(shù)支持參數(shù)數(shù)組。侃:好


OOP:

  • C# 中沒有全局方法和全局變量:方法和變量必須包含在類型聲明(如 class 或 struct)中。侃:習慣就好,全局方法有時候是很丑陋的,比如一個getxxx,你到底是從哪get的。

  • 繼承:類只能繼承一個基類中的實現(xiàn)。另外,類或接口可以實現(xiàn)多個接口。侃:單根繼承很好。

  • 類成員有字段和屬性之分。侃:好,懶人和勤快人都能用

  • 屬性訪問語法和自動屬性。侃:好,比手寫getter,setter好多了

  • 使用 new 修飾符顯式隱藏繼承成員。侃:很好

  • 部分類定義。侃:好,誰再規(guī)定Java一個類不能超過多少行,可以懟了。

  • 只讀字段。侃:好

  • 靜態(tài)構造函數(shù)。侃:好,終于不用分開寫了。


參考:

https://msdn.microsoft.com/zh-cn/library/aa287549(v=vs.71).aspx


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI