共用方式為


Python 開發人員學習 C# 的藍圖

C# 和 Python 共用類似的概念。 如果已經認識 Python,這些熟悉的概念可協助您學會 C#。

  1. 物件導向:Python 和 C# 都是物件導向語言。 即使語法不同,Python 類別的所有概念皆適用於 C#。
  2. 跨平台:Python 和 C# 都是跨平台語言。 以任一語言撰寫的應用程式,皆可在許多平台上執行。
  3. 記憶體回收:兩種語言都透過記憶體回收採用自動記憶體管理。 執行階段會從不再被參考的物件中回收記憶體。
  4. 強型別:Python 和 C# 都是強型別語言。 型別轉換不會以隱含的方式發生。 稍後將會說明其差異,因為 C# 是靜態型別,而 Python 則是動態型別。
  5. 非同步 / Await:Python 的 asyncawait 功能,直接受到 C# 的 asyncawait 支援啟發。
  6. 模式比對:Python 的 match 運算式和模式比對,類似於 C# 的 模式比對switch運算式。 您可以用它們檢查複雜的資料運算式,判斷它是否符合模式。
  7. 陳述式關鍵字:Python 和 C# 共用許多關鍵字,例如 ifelsewhilefor 等等。 雖然並非所有語法都相同,但如果您懂 Python,兩者的相似性就足以幫助您看懂 C#。

當您瞭解 C# 時,您會探索 C# 與 Python 不同的這些重要概念:

  1. 縮排 vs. 符號:在 Python,新行和縮排是基本語法元素。 在 C#,空白字元並不重要。 標記,例如 ; 分隔陳述式,其他標記 { 則和 } 一起控制 if 和其他區塊陳述式的區塊範圍。 然而,為了可讀性,大部分編碼樣式 (包括這些文件中使用的樣式),都是使用縮排來強化 {} 所宣告的區塊範圍。
  2. 靜態型別:在 C# 中,變數宣告包含其型別。 將變數重新指派給不同型別的物件,會產生編譯器錯誤。 在 Python,型別可以在重新指派時變更。
  3. 可為 Null 的類型:C# 變數可以是可為 Null 的不可為 Null 的。 非 Null 型別是指不能為 Null(或 Nothing)的型別。 它總是指有效物件。 相較之下,可為空的類型可能指向有效的物件或空值。
  4. LINQ:構成語言整合查詢 (LINQ) 的查詢運算式關鍵字,在 Python 並非關鍵字。 不過,itertoolsmore-itertoolspy-linq 這類 Python 程式庫提供類似的功能。
  5. 泛型:C# 泛型使用 C# 的靜態類型,對型別參數提供的引數進行斷言。 泛型演算法可能必須指定引數型別必須滿足的限制式。

最後,Python 有一些 C# 沒有的功能:

  1. 結構型別(鴨子型別):在 C# 中,型別有名稱和宣告。 除了 Tuple 之外,結構相同的型別無法交換。
  2. REPL:C# 沒有可快速原型化解決方案的 Read-Eval-Print 迴圈 (REPL)。
  3. 重要的空白字元:您必須正確使用大括弧 {} 來標示區塊範圍。

如果您懂 Python,就能順利踏上 C# 學習之旅。 這些語言的概念和慣用語相似。