Harmonogram działania dla deweloperów języka Python uczących się języka C#
Języki C# i Python współdzielą podobne pojęcia. Te znane konstrukcje ułatwiają naukę języka C#, gdy znasz już język Python.
- Obiekt zorientowany: Języki python i C# są językami obiektowymi. Wszystkie pojęcia dotyczące klas w języku Python mają zastosowanie w języku C#, nawet jeśli składnia jest inna.
- Międzyplatformowe: Języki Python i C# to języki międzyplatformowe. Aplikacje napisane w obu językach mogą być uruchamiane na wielu platformach.
- Odzyskiwanie pamięci: oba języki wykorzystują automatyczne zarządzanie pamięcią za pośrednictwem odzyskiwania pamięci. Środowisko uruchomieniowe odzyskuje pamięć z obiektów, do których nie odwołuje się odwołanie.
- Silnie typizowane: Języki Python i C# są silnie typizowane. Przymus typu nie występuje niejawnie. Istnieją różnice opisane później, ponieważ język C# jest statycznie typizowane, podczas gdy język Python jest dynamicznie wpisywany.
- Async / Await: funkcje języka Python
async
iawait
zostały bezpośrednio zainspirowane przez język C#async
iawait
obsługę. - Dopasowywanie wzorca: dopasowywanie wyrażeń i wzorców języka
match
Python jest podobne do wyrażenia dopasowaniaswitch
wzorca języka C#. Służą one do sprawdzania złożonego wyrażenia danych w celu określenia, czy jest on zgodny ze wzorcem. - Słowa kluczowe instrukcji: Język Python i C# udostępnia wiele słów kluczowych, takich jak
if
,else
,while
,for
i wiele innych. Chociaż nie wszystkie składnie są takie same, istnieje wystarczająca podobieństwo, którą można odczytać w języku C#, jeśli znasz język Python.
Gdy zaczniesz uczyć się języka C#, poznasz te ważne pojęcia, w których język C# różni się od języka Python:
- Wcięcia a tokeny: w języku Python nowe linie i wcięcia są elementami składniowymi pierwszej klasy. W języku C# białe znaki nie są istotne. Tokeny, takie jak
;
oddzielne instrukcje, oraz inne tokeny i}
zakres bloków kontroli dlaif
i innych instrukcji{
bloku. Jednak w celu zapewnienia czytelności większość stylów kodowania (w tym stylu używanych w tych dokumentach) używa wcięcia w celu wzmocnienia zakresów bloków zadeklarowanych przez{
i}
. - Statyczne wpisywanie: w języku C# deklaracja zmiennej zawiera jej typ. Ponowne przypisywanie zmiennej do obiektu innego typu powoduje wygenerowanie błędu kompilatora. W języku Python typ może ulec zmianie po ponownym przypisaniu.
- Typy dopuszczane do wartości null: zmienne języka C# mogą być dopuszczane do wartości null lub nie mogą być dopuszczane do wartości null. Typ niezwiązany z wartością null jest taki, który nie może mieć wartości null (lub nic). Zawsze odwołuje się do prawidłowego obiektu. Z kolei typ dopuszczalny do wartości null może odwoływać się do prawidłowego obiektu lub wartości null.
- LINQ: słowa kluczowe wyrażenia zapytania tworzące zapytanie zintegrowane w języku Language (LINQ) nie są słowami kluczowymi w języku Python. Jednak biblioteki języka Python, takie jak
itertools
,more-itertools
ipy-linq
zapewniają podobne funkcje. - Typy ogólne: typy ogólne języka C# używają statycznego wpisywania w języku C#, aby tworzyć asercji dotyczące argumentów podanych dla parametrów typu. Algorytm ogólny może wymagać określenia ograniczeń, które musi spełniać typ argumentu.
Na koniec istnieją pewne funkcje języka Python, które nie są dostępne w języku C#:
- Pisownia strukturalna (kaczka): w języku C#typy mają nazwy i deklaracje. Z wyjątkiem krotki typy o tej samej strukturze nie są wymienne.
- REPL: Język C# nie ma pętli RePL (Read-Eval-Print Loop) w celu szybkiego tworzenia prototypów rozwiązań.
- Istotne białe znaki: należy prawidłowo używać nawiasów klamrowych
{
i}
zanotować zakres bloków.
Nauka języka C#, jeśli wiesz, że język Python jest płynną podróżą. Języki mają podobne pojęcia i podobne idiomy do użycia.
Współpracuj z nami w serwisie GitHub
Źródło tej zawartości można znaleźć w witrynie GitHub, gdzie można również tworzyć i przeglądać problemy i żądania ściągnięcia. Więcej informacji znajdziesz w naszym przewodniku dla współtwórców.