Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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.
- Zbieranie śmieci: oba języki wykorzystują automatyczne zarządzanie pamięcią za pośrednictwem zbierania śmieci. Środowisko uruchomieniowe odzyskuje pamięć z obiektów, do których nie ma odwołań.
- Silnie typizowane: Języki Python i C# charakteryzują się silnym typizowaniem. Przymus typu nie występuje niejawnie. Istnieją różnice opisane później, ponieważ język C# jest statycznie typowany, podczas gdy język Python jest dynamicznie typowany.
-
Async / Await: Funkcje języka Python
async
iawait
zostały bezpośrednio zainspirowane obsługą języka C#async
iawait
. -
Dopasowywanie wzorców: wyrażenia i dopasowywanie wzorców w języku
match
Python są podobne do wyrażeń dopasowywania wzorcówswitch
w języku 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: Python i C# mają wiele wspólnych słów kluczowych, takich jak
if
,else
,while
,for
oraz wiele innych. Chociaż nie wszystkie składnie są takie same, istnieje wystarczające podobieństwo, które pozwala czytać C#, jeśli znasz Pythona.
Podczas nauki języka C#odkryjesz 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
;
oddzielają instrukcje, oraz inne tokeny{
kontrolują zakres bloków dla}
i innych instrukcji blokowychif
. 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 dopuszczające wartość null: Zmienne w C# mogą być nullem lub nie. 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 dopuszczający wartość null może odwoływać się do prawidłowego obiektu lub wartości null.
-
LINQ: Słowa kluczowe wyrażeń zapytań, które składają się na zintegrowane zapytanie językowe (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 w C# używają statycznego typowania w C#, aby tworzyć asercje 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#:
- Typowanie strukturalne (kaczkowe): W języku C# typy mają nazwy i deklaracje. Z wyjątkiem krotek typy o tych samych strukturach 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}
, aby oznaczyć zakres bloków.
Nauka C#, jeśli znasz Pythona, to płynna podróż. Języki mają podobne pojęcia i podobne idiomy do użycia.