Delen via


Roadmap voor Python-ontwikkelaars die C leren#

C# en Python delen vergelijkbare concepten. Deze vertrouwde constructies helpen u C# te leren wanneer u Python al kent.

  1. Objectgeoriënteerd: Zowel Python als C# zijn objectgeoriënteerde talen. Alle concepten rond klassen in Python zijn van toepassing in C#, zelfs als de syntaxis anders is.
  2. Platformoverschrijdend: Zowel Python als C# zijn platformoverschrijdende talen. Apps die in beide talen zijn geschreven, kunnen op veel platforms worden uitgevoerd.
  3. Garbagecollection: beide talen maken gebruik van automatisch geheugenbeheer via garbagecollection. De runtime maakt het geheugen vrij van objecten waarnaar niet wordt verwezen.
  4. Sterk getypt: Zowel Python als C# zijn sterk getypte talen. Type coercion wordt niet impliciet uitgevoerd. Er zijn later verschillen beschreven, omdat C# statisch wordt getypt terwijl Python dynamisch wordt getypt.
  5. Async/ Await: Python's async en await functie zijn rechtstreeks geïnspireerd op C#'s async en await ondersteuning.
  6. Patroonkoppeling: de expressie en patroonkoppeling van Python match zijn vergelijkbaar met de patroonkoppelingsexpressieswitch van C#. U gebruikt deze om een complexe gegevensexpressie te inspecteren om te bepalen of deze overeenkomt met een patroon.
  7. Trefwoorden voor instructies: Python en C# delen veel trefwoorden, zoals if, elsewhile, en forvele andere. Hoewel niet alle syntaxis hetzelfde is, is er voldoende gelijkenis dat u C# kunt lezen als u Python kent.

Wanneer u begint met het leren van C#, leert u deze belangrijke concepten waarbij C# verschilt van Python:

  1. Inspringing versus tokens: in Python zijn nieuwe regels en inspringing eersteklas syntactische elementen. In C# is witruimte niet significant. Tokens, zoals ; afzonderlijke instructies, en andere tokens { en } het blokbereik voor besturingselementen voor if en andere blokinstructies. Voor leesbaarheid gebruiken de meeste coderingsstijlen (inclusief de stijl die in deze documenten wordt gebruikt) echter inspringing om de blokbereiken te versterken die zijn gedeclareerd door { en }.
  2. Statisch typen: In C# bevat een variabeledeclaratie het type. Als u een variabele opnieuw toegeeft aan een object van een ander type, wordt er een compilerfout gegenereerd. In Python kan het type worden gewijzigd wanneer het opnieuw wordt toegewezen.
  3. Null-typen: C#-variabelen kunnen nullable of niet-nullable zijn. Een niet-null-type is een type dat niet null (of niets) kan zijn. Het verwijst altijd naar een geldig object. Een null-type kan daarentegen verwijzen naar een geldig object of null.
  4. LINQ: De trefwoorden voor query-expressies waaruit Language Integrated Query (LINQ) bestaat, zijn geen trefwoorden in Python. Python-bibliotheken zoals itertools, more-itertoolsen py-linq bieden vergelijkbare functionaliteit.
  5. Algemene functies: C#-generics gebruiken statische C#-typen om asserties te maken over de argumenten die zijn opgegeven voor typeparameters. Een algemeen algoritme moet mogelijk beperkingen opgeven waaraan een argumenttype moet voldoen.

Ten slotte zijn er enkele functies van Python die niet beschikbaar zijn in C#:

  1. Structurele (eend) typen: In C# hebben typen namen en declaraties. Met uitzondering van tuples zijn typen met dezelfde structuur niet uitwisselbaar.
  2. REPL: C# heeft geen REPL (Read-Eval-Print Loop) om snel prototypeoplossingen te maken.
  3. Aanzienlijke witruimte: u moet accolades { correct gebruiken en } blokbereik noteren.

C# leren als u weet dat Python een soepele reis is. De talen hebben vergelijkbare concepten en vergelijkbare idiomen die moeten worden gebruikt.