Harmonogram działania dla deweloperów języka JavaScript i TypeScript uczących się języka C#
Języki C#, TypeScript i JavaScript są członkami rodziny języków C. Podobieństwa między językami ułatwiają szybkie zwiększenie produktywności w języku C#.
- Podobna składnia: JavaScript, TypeScript i C# znajdują się w rodzinie języków C. To podobieństwo oznacza, że można już przeczytać i zrozumieć język C#. Istnieją pewne różnice, ale większość składni jest taka sama jak JavaScript i C. Znane są nawiasy klamrowe i średniki. Instrukcje sterujące, takie jak
if
,else
switch
, są takie same. Instrukcjefor
pętli ,while
ido
...while
są takie same. Te same słowa kluczowe iclass
interface
znajdują się w języku C# i TypeScript. Modyfikatory dostępu w językach TypeScript i C#, zpublic
doprivate
, są takie same. - Token
=>
: Wszystkie języki obsługują lekkie definicje funkcji. W języku C#są one nazywane wyrażeniami lambda w języku JavaScript, które są zwykle nazywane funkcjami strzałek. - Hierarchie funkcji: wszystkie trzy języki obsługują funkcje lokalne, które są funkcjami zdefiniowanymi w innych funkcjach.
- Async/Await: Wszystkie trzy języki mają takie same
async
słowa kluczowe iawait
asynchroniczne programowania. - Odzyskiwanie pamięci: Wszystkie trzy języki korzystają z modułu odśmiecania pamięci do automatycznego zarządzania pamięcią.
- Model zdarzeń: składnia
event
języka C#jest podobna do modelu języka JavaScript dla zdarzeń modelu obiektów dokumentów (DOM). - Menedżer pakietów: NuGet jest najczęściej używanym menedżerem pakietów dla języków C# i .NET, podobnie jak npm dla aplikacji JavaScript. Biblioteki języka C# są dostarczane w zestawach.
Kontynuując naukę w języku C#, poznasz pojęcia, które nie są częścią języka JavaScript. Niektóre z tych pojęć mogą cię znać, jeśli używasz języka TypeScript:
- System typów języka C#: C# jest silnie typizowanego języka. Każda zmienna ma typ, a ten typ nie może ulec zmianie. Definiowanie
class
lubstruct
typy. Definicje definiujące zachowanie zaimplementowane przez inne typy można zdefiniowaćinterface
. Język TypeScript zawiera wiele z tych pojęć, ale ponieważ język TypeScript jest oparty na języku JavaScript, system typów nie jest tak rygorystyczny. - Dopasowywanie wzorca: Dopasowywanie wzorca umożliwia zwięzłe instrukcje warunkowe i wyrażenia na podstawie kształtu złożonych struktur danych. Wyrażenie
is
sprawdza, czy zmienna "jest" pewnym wzorcem. Wyrażenie oparte naswitch
wzorcu zapewnia bogatą składnię do sprawdzania zmiennej i podejmowania decyzji na podstawie jej cech. - Interpolacja ciągów i nieprzetworzone literały ciągów: interpolacja ciągów umożliwia wstawianie obliczonych wyrażeń w ciągu zamiast używania identyfikatorów pozycyjnych. Nieprzetworzone literały ciągu umożliwiają zminimalizowanie sekwencji ucieczki w tekście.
- Typy dopuszczające wartości null i inne niż null: język C# obsługuje typy wartości dopuszczających wartość null i typy referencyjne dopuszczające wartość null przez dołączenie sufiksu
?
do typu. W przypadku typów dopuszczających wartość null kompilator wyświetli ostrzeżenie, jeśli nie sprawdzisznull
przed wyłuszczeniem wyrażenia. W przypadku typów innych niż null kompilator ostrzega, czy możesz przypisaćnull
wartość do tej zmiennej. Te funkcje mogą zminimalizować zgłaszanie przez aplikację .System.NullReferenceException Składnia może być znana z użycia języka TypeScript dla właściwości opcjonalnych?
. - LINQ: Zapytanie zintegrowane z językiem (LINQ) udostępnia wspólną składnię do wykonywania zapytań i przekształcania danych, niezależnie od jego magazynu.
Gdy dowiesz się więcej innych różnic, stają się widoczne, ale wiele z tych różnic jest mniejszych w zakresie.
Niektóre znane funkcje idiomów z języków JavaScript i TypeScript nie są dostępne w języku C#:
- typy dynamiczne: język C# używa statycznego pisania. Deklaracja zmiennej zawiera typ i ten typ nie może ulec zmianie. W języku C# istnieje
dynamic
typ, który zapewnia powiązanie środowiska uruchomieniowego. - Dziedziczenie prototypowe: dziedziczenie języka C# jest częścią deklaracji typu. Deklaracja języka C#
class
określa dowolną klasę bazową. W języku JavaScript można ustawić właściwość , aby ustawić__proto__
typ podstawowy w dowolnym wystąpieniu. - Język interpretowany: przed jego uruchomieniem należy skompilować kod języka C#. Kod JavaScript można uruchamiać bezpośrednio w przeglądarce.
Ponadto kilka innych funkcji języka TypeScript nie jest dostępnych w języku C#:
- Typy unii: język C# nie obsługuje typów unii. Jednak propozycje projektowe są w toku.
- Dekoratory: język C# nie ma dekoratorów. Niektóre typowe dekoratory, takie jak
@sealed
słowa kluczowe zarezerwowane w języku C#. Inne typowe dekoratory mogą mieć odpowiednie atrybuty. W przypadku innych dekoratorów możesz utworzyć własne atrybuty. - Więcej składni forgiving: kompilator języka C# analizuje kod bardziej ściśle niż wymaga języka JavaScript.
Jeśli tworzysz aplikację internetową, rozważ użycie platformy Blazor do skompilowania aplikacji. Blazor to platforma internetowa z pełnym stosem utworzona dla platform .NET i C#. Składniki platformy Blazor mogą być uruchamiane na serwerze jako zestawy platformy .NET lub na kliencie przy użyciu zestawu WebAssembly. Platforma Blazor obsługuje współdziałanie z ulubionymi bibliotekami JavaScript lub TypeScript.