Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Pokud přecházíte z Pythonu na C# pro novou roli nebo projekt, pomůže vám tento článek rychle dosáhnout produktivity. Zvýrazňuje, co je známé v Pythonu a co se liší v jazyce C#.
C# a Python sdílejí podobné koncepty. Tyto známé konstruktory vám pomůžou naučit se jazyk C#, když už znáte Python.
- Objektově orientované: Python i C# jsou objektově orientované jazyky. Všechny koncepty týkající se tříd v Pythonu platí v jazyce C# i v případě, že se syntaxe liší.
- Multiplatformní: Python i C# jsou multiplatformní jazyky. Aplikace napsané v obou jazycích se můžou spouštět na mnoha platformách.
- Garbage collection: Oba jazyky využívají automatickou správu paměti prostřednictvím garbage collection. Runtime uvolní paměť objektům, na které se neodkazuje.
- Silně typované: Python i C# jsou silně typované programovací jazyky. Převod typu se neprovádí implicitně. Později jsou popsané rozdíly, protože jazyk C# je staticky napsaný, zatímco Python je dynamicky napsaný.
-
Async / Await: Funkce
asyncaawaitPythonu byla přímo inspirovaná podporouasyncaawaitv jazyce C#. -
Porovnávání vzorů a výrazů v Pythonu se podobá výrazu porovnávání vzorů v
matchC#. Použijete je ke kontrole komplexního datového výrazu, abyste zjistili, jestli odpovídá vzoru. -
Klíčová slova příkazů: Python a C# sdílejí mnoho klíčových slov, například
if,elsewhile, ,fora mnoho dalších. I když není všechna syntaxe stejná, existuje dostatek podobnosti, kterou můžete přečíst v jazyce C#, pokud znáte Python.
Syntaxe na první pohled
Následující příklady ukazují několik běžných vzorů vedle sebe. Tato porovnání nejsou vyčerpávající, ale poskytují rychlý pocit rozdílů v syntaxi.
Psaní poznámek:
# Python
name: str = "Hello"
count: int = 5
// C#
string name = "Hello";
int count = 5;
Filtrování seznamu (porozumění vs. LINQ):
# Python
result = [x for x in items if x > 5]
// C#
var result = items.Where(x => x > 5).ToList();
Další informace: Přehled LINQ
Rozsah bloku (odsazení versus složené závorky):
# Python
if count > 0:
print("positive")
// C#
if (count > 0)
{
Console.WriteLine("positive");
}
Definice třídy:
# Python
class Point:
def __init__(self, x: int, y: int):
self.x = x
self.y = y
// C#
record Point(int X, int Y);
Další informace: Záznamy
Hlavní rozdíly
Když se seznámíte s jazykem C#, seznámíte se s těmito důležitými koncepty, ve kterých se jazyk C# liší od Pythonu:
-
Odsazení vs. tokeny: V Pythonu jsou nové řádky a odsazení prvotřídními syntaktickými prvky. V jazyce C# nejsou bílé znaky významné. Tokeny, jako je
;, oddělují příkazy, a další tokeny, jako{a}, řídí rozsah bloku proifa další blokové příkazy. Pro čitelnost však většina stylů kódování (včetně stylu používaného v těchto dokumentech) využívá odsazení k posílení rozsahů bloků deklarovaných{v a}. - Statické psaní: V jazyce C# obsahuje deklarace proměnné svůj typ. Změna přiřazení proměnné k objektu jiného typu generuje chybu kompilátoru. V Pythonu se typ může při opětovném přiřazení změnit.
- Typy s možnou hodnotou null: Proměnné jazyka C# můžou být nullable nebo nenulové. Nenulovatelný typ je takový, který nemůže být null (nebo nic). Vždy odkazuje na platný objekt. Naopak typ, který může být null, může odkazovat na platný objekt nebo na hodnotu null.
-
LINQ: Klíčová slova výrazu dotazu, která tvoří jazyk integrovaný dotaz (LINQ), nejsou klíčová slova v Pythonu. Knihovny Pythonu, jako jsou
itertools,more-itertoolsapy-linq, poskytují podobné funkce. - Obecné typy: Obecné typy jazyka C# používají statické psaní jazyka C# k vytváření kontrolních výrazů o argumentech zadaných pro parametry typu. Obecný algoritmus může potřebovat určit omezení, která musí typ argumentu splňovat.
Návod
Další informace o systému typů jazyka C#, včetně classstructobecných typů a rozhraní jazyka C#, najdete v přehledu systému typů v části Základy.
A konečně některé funkce Pythonu nejsou v jazyce C# dostupné:
- Strukturální (duck) typování: V jazyce C# mají typy názvy a deklarace. S výjimkou n-tic nejsou typy se stejnou strukturou zaměnitelné.
- REPL: C# nemá smyčku REPL (Read-Eval-Print Loop) pro rychlé prototypy řešení.
-
Významné prázdné znaky: Musíte správně používat složené závorky
{a}ke správnému označení rozsahu bloku.
Pokud znáte Python, je učení se jazyk C# plynulou cestou. Jazyky mají podobné koncepty a podobné idiomy, které se mají použít.
Další kroky
- Prohlídka jazyka C#: Získejte základní přehled všech funkcí jazyka C#.
- Kurzy pro začátečníky: Krok za krokem se naučíte C# s interaktivními lekcemi.
- Co můžete vytvořit pomocí jazyka C#: Prozkoumejte typy aplikací, které můžete vytvořit pomocí jazyka C#.
- Základy jazyka C#: Ponořte se hlouběji do systému typů, objektově orientovaného programování a dalších možností.