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#, 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. Instrukcje pętlifor
,while
ido
...while
są takie same. Te same słowa kluczowe dlaclass
iinterface
znajdują się w językach 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 określane jako wyrażenia lambda w języku JavaScript, są one 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ą te same słowa kluczowe
async
iawait
dla programowania asynchronicznego. - odzyskiwanie pamięci: wszystkie trzy języki korzystają z modułu odśmiecania pamięci na potrzeby 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 w przypadku aplikacji JavaScript npm. Biblioteki języka C# są dostarczane w zestawach .
Podczas nauki języka 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:
-
C# system typów: C# jest silnie typizowanym językiem. Każda zmienna ma typ, a ten typ nie może ulec zmianie. Definiujesz typy
class
lubstruct
. Można zdefiniować definicjeinterface
definiujące zachowanie zaimplementowane przez inne typy. 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żenieswitch
oparte na wzorcu udostępnia bogatą składnię do sprawdzania zmiennej i podejmowania decyzji na podstawie jej cech. - interpolacja ciągów i surowych literali ciągów: interpolacja ciągów umożliwia wstawianie wyrażeń obliczeniowych w ciąg, zamiast używania identyfikatorów pozycyjnych. Nieprzetworzone literały ciągu umożliwiają zminimalizowanie sekwencji ucieczki w tekście.
-
typydopuszczające wartości null i inne niż null: język C# obsługuje typy wartości dopuszczających wartości nulli 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że zostać przypisana wartośćnull
do tej zmiennej. Te cechy mogą zminimalizować wystąpienie błędu System.NullReferenceExceptionw aplikacji. Składnia może być znana z TypeScript, gdzie używa się?
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 typowania. Deklaracja zmiennej zawiera typ i ten typ nie może ulec zmianie. W języku C# istnieje typ
dynamic
, który zapewnia powiązanie środowiska uruchomieniowego. -
dziedziczenie prototypowe: dziedziczenie języka C# jest częścią deklaracji typu. Deklaracja
class
języka C# określa dowolną klasę bazową. W języku JavaScript można ustawić właściwość__proto__
, aby ustawić typ podstawowy w dowolnym wystąpieniu. - język interpretowany: przed uruchomieniem należy skompilować kod 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: C# nie obsługuje typów unii. Jednak propozycje projektowe są w toku.
-
Decorators: C# nie ma dekoratorów. Niektóre popularne dekory, takie jak
@sealed
, to zastrzeżone słowa kluczowe w języku C#. Inne typowe dekoratory mogą mieć odpowiednie atrybuty . Dla innych dekoratorów możesz stworzyć własne atrybuty. - bardziej wyrozumiała składnia: kompilator C# analizuje kod bardziej ściśle niż wymaga JavaScript.
Jeśli tworzysz aplikację internetową, rozważ użycie blazor do skompilowania aplikacji. Blazor to kompletny framework do tworzenia aplikacji webowych stworzony dla platformy .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.