Dela via


Översikt för Python-utvecklare som lär sig C#

C# och Python delar liknande begrepp. Dessa välbekanta konstruktioner hjälper dig att lära dig C# när du redan känner till Python.

  1. Objektorienterad: Både Python och C# är objektorienterade språk. Alla begrepp kring klasser i Python gäller i C#, även om syntaxen är annorlunda.
  2. Plattformsoberoende: Både Python och C# är plattformsoberoende språk. Appar som skrivits på något av språken kan köras på många plattformar.
  3. Skräpinsamling: Båda språken använder automatisk minneshantering via skräpinsamling. Körningen återtar minnet från objekt som inte refereras till.
  4. Starkt skrivet: Både Python och C# är starkt skrivna språk. Typtvång sker inte implicit. Det finns skillnader som beskrivs senare, eftersom C# är statiskt skrivet medan Python skrivs dynamiskt.
  5. Async/Await: Pythons och await funktionen inspirerades async direkt av C#:s async och await support.
  6. Mönstermatchning: Pythons match uttryck och mönstermatchning liknar C#:s mönstermatchningsuttryckswitch. Du använder dem för att inspektera ett komplext datauttryck för att avgöra om det matchar ett mönster.
  7. Nyckelord för instruktion: Python och C# delar många nyckelord, till exempel if, else, while, foroch många andra. Även om inte all syntax är densamma finns det tillräckligt med likheter som du kan läsa C# om du känner till Python.

När du börjar lära dig C#får du lära dig dessa viktiga begrepp där C# skiljer sig från Python:

  1. Indrag jämfört med token: I Python är nya streck och indrag förstklassiga syntaktiska element. I C# är blanksteg inte betydande. Token, till exempel ; separata instruktioner, och andra token { och } kontrollblockomfång för if och andra blockinstruktioner. För läsbarhet använder dock de flesta kodningsformat (inklusive det format som används i dessa dokument) indrag för att förstärka blockomfattningarna som deklareras av { och }.
  2. Statisk inmatning: I C# innehåller en variabeldeklaration dess typ. Omtilldelning av en variabel till ett objekt av en annan typ genererar ett kompilatorfel. I Python kan typen ändras när den tilldelas om.
  3. Nullbara typer: C#-variabler kan vara nullbara eller icke-nullbara. En icke-nullbar typ är en typ som inte kan vara null (eller ingenting). Det refererar alltid till ett giltigt objekt. En nullbar typ kan däremot antingen referera till ett giltigt objekt eller null.
  4. LINQ: Nyckelord för frågeuttryck som utgör LINQ (Language Integrated Query) är inte nyckelord i Python. Python-bibliotek som itertools, more-itertoolsoch py-linq tillhandahåller liknande funktioner.
  5. Generiska: C#-generiska objekt använder statisk C#-typning för att göra försäkran om argumenten som anges för typparametrar. En allmän algoritm kan behöva ange begränsningar som en argumenttyp måste uppfylla.

Slutligen finns det vissa funktioner i Python som inte är tillgängliga i C#:

  1. Strukturell (anka)-typning: I C# har typer namn och deklarationer. Förutom tupplar är typer med samma struktur inte utbytbara.
  2. REPL: C# har ingen REPL (Read-Eval-Print Loop) för att snabbt skapa prototyplösningar.
  3. Betydande blanksteg: Du måste använda klammerparenteser { på rätt sätt och } notera blockomfånget.

Att lära sig C# om du vet att Python är en smidig resa. Språken har liknande begrepp och liknande idiom att använda.