Plán výuky jazyka C pro vývojáře v Pythonu#
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.
- Uvolňování paměti: Oba jazyky využívají automatickou správu paměti prostřednictvím uvolňování paměti. Modul runtime uvolní paměť z objektů, na které se neodkazují.
- Silné typy: Python i C# jsou jazyky silného typu. 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ý.
- Asynchronní / Await:
async
Python aawait
funkce byla přímo inspirovaná jazykem C#async
aawait
podporou. - Porovnávání vzorů: Porovnávání výrazů
match
a vzorů Pythonu se podobá výrazu porovnáváníswitch
vzorů jazyka C#. 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
,else
while
, ,for
a 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.
Při učení jazyka C# se seznámíte s těmito důležitými koncepty, ve kterých se jazyk C# liší od Pythonu:
- Odsazení vs. tokeny: V Pythonu jsou nové spojnice a odsazení syntaktické prvky první třídy. V jazyce C# není prázdné znaky významné. Tokeny, jako jsou
;
samostatné příkazy, a další tokeny{
a}
rozsah řídicího bloku proif
a další příkazy bloku. 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é. Typ, který není null, je typ, který nemůže být null (nebo nic). Vždy odkazuje na platný objekt. Naproti tomu může typ s možnou hodnotou null odkazovat na platný objekt nebo hodnotu null.
- LINQ: Klíčová slova výrazu dotazu, která tvoří jazyk integrovaný dotaz (LINQ), nejsou klíčová slova v Pythonu. Knihovny Pythonu, jako
itertools
je ,more-itertools
alepy-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.
A konečně existují některé funkce Pythonu, které nejsou v jazyce C#k dispozici:
- Strukturální psaní (kachna): V jazyce C# mají typy názvy a deklarace. S výjimkou řazených kolekcí členů 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}
poznamenejte si rozsah bloku.
Pokud víte, že Python je bezproblémová cesta, seznámíte se s jazykem C#. Jazyky mají podobné koncepty a podobné idiomy, které se mají použít.
Spolupracujte s námi na GitHubu
Zdroj tohoto obsahu najdete na GitHubu, kde můžete také vytvářet a kontrolovat problémy a žádosti o přijetí změn. Další informace najdete v našem průvodci pro přispěvatele.