Megosztás a következőn keresztül:


JavaScript- és TypeScript-fejlesztőknek készült ütemterv a C tanulásához#

A C#, a TypeScript és a JavaScript a C nyelvcsalád összes tagja. A nyelvek közötti hasonlóságok segítenek gyorsan hatékonyan dolgozni a C#-ban.

  1. Hasonló szintaxis: A JavaScript, a TypeScript és a C# a C nyelvcsaládban található. Ez a hasonlóság azt jelenti, hogy már olvashatja és megértheti a C#-t. Vannak különbségek, de a szintaxis nagy része ugyanaz, mint a JavaScript és a C. A kapcsos zárójelek és pontosvesszők ismerősek. Az olyan vezérlő utasítások, mint ifa , elseswitch ugyanazok. A for, while, és do...while ismétlődő utasításai megegyeznek. A class és a interface kulcsszavai c# és TypeScript nyelven is szerepelnek. A TypeScript és a C# hozzáférési módosítói public és privateközött ugyanazok.
  2. A => token: Minden nyelv támogatja a könnyűsúlyú függvénydefiníciókat. A C#-ban lambda kifejezéseknek, JavaScriptben általában nyílfüggvényekneknevezik őket.
  3. függvényhierarchiák: Mindhárom nyelv támogatja helyi függvényeket, amelyek más függvényekben definiált függvények.
  4. Async / Await: Mindhárom nyelv ugyanazt a async és await kulcsszavakat használja az aszinkron programozáshoz.
  5. szemétgyűjtési: Mindhárom nyelv egy szemétgyűjtőre támaszkodik az automatikus memóriakezeléshez.
  6. eseménymodell: A C#event szintaxisa hasonló a JavaScript-modell dokumentumobjektum-modell (DOM) eseményeihez.
  7. Csomagkezelő: A NuGet a C# és a .NET leggyakoribb csomagkezelője, hasonlóan a JavaScript-alkalmazások npm-éhez. A C# könyvtárakat gyűjteményekben szállítják.

A C# elsajátítása után elsajátíthatja azokat a fogalmakat, amelyek nem részei a JavaScriptnek. A TypeScript használata esetén az alábbi fogalmak némelyike ismerős lehet:

  1. C# típusrendszer: A C# egy erősen gépelt nyelv. Minden változónak van típusa, és ez a típus nem módosítható. Definiálhat class vagy struct típusokat. Definiálhat olyan interface definíciókat, amelyek más típusok által implementált viselkedést határoznak meg. A TypeScript számos fogalmat tartalmaz, de mivel a TypeScript JavaScriptre épül, a típusrendszer nem olyan szigorú.
  2. Mintaegyezés: A mintaegyeztetés lehetővé teszi a feltételes utasítások és kifejezések tömör, összetett adatstruktúrákon alapuló használatát. A is kifejezés ellenőrzi, hogy egy változó megegyezik-e valamilyen mintázattal. A mintaalapú switch kifejezés gazdag szintaxist biztosít a változók vizsgálatához és a jellemzői alapján történő döntéshozatalhoz.
  3. Sztring interpolációja és nyers sztringkonstansok: A sztring interpolációja lehetővé teszi a kiértékelt kifejezések sztringbe való beszúrását a helyazonosítók használata helyett. A nyers sztringkonstansok lehetővé teszik a szövegben lévő feloldási sorozatok minimalizálását.
  4. Null értékű és nem null értékű típusok: A C# támogatja a null értékű értéktípusokat, a null értékű referenciatípusokat pedig az ? utótag típushoz való hozzáfűzésével. Null értékű típusok esetén a fordító figyelmezteti, ha nem ellenőrzi, hogy null értékű-e a kifejezés, mielőtt használni próbálná azt. A nem nullázható típusok esetén a fordító figyelmezteti, ha esetleg egy null értéket rendelne hozzá ehhez a változóhoz. Ezek a funkciók minimálisra csökkenthetik annak valószínűségét, hogy az alkalmazás System.NullReferenceExceptionhibát okozzon. A szintaxis ismerős lehet abból, hogyan használja a TypeScript a ?-t a választható tulajdonságok esetében.
  5. LINQ: A nyelvvel integrált lekérdezés (LINQ) az adatok lekérdezéséhez és átalakításához általános szintaxist biztosít, függetlenül azok tárterületétől.

Ahogy egyre több különbség válik nyilvánvalóvá, de ezek közül sok kisebb jelentőségű.

A JavaScript és a TypeScript néhány ismerős funkciója és kifejezése nem érhető el a C#-ban:

  1. dinamikus típusok: A C# statikus gépelést használ. A változódeklaráció tartalmazza a típust, és ez a típus nem módosítható. Van egy dynamic típus a C#-ban, amely futtatókörnyezeti kötést biztosít.
  2. prototípusalapú öröklődés: A C#-öröklés a típusdeklaráció része. A C#-class deklaráció bármilyen alaposztályt feltüntet. A JavaScriptben beállíthatja a __proto__ tulajdonságot, hogy bármely példányon beállítsa az alaptípust.
  3. Értelmezett nyelv: A C#-kódot kötelező lefordítani, mielőtt futtatja. A JavaScript-kód közvetlenül a böngészőben futtatható.

Emellett néhány további TypeScript-funkció nem érhető el a C#-ban:

  1. Uniótípusok: A C# nem támogatja az egyesítő típusokat. A tervezési javaslatok azonban folyamatban vannak.
  2. dekorátorok: A C#-ban nincsenek dekorátorok. Egyes gyakori dekorátorok, például a @sealed, fenntartott kulcsszóként szerepelnek a C#-ban. Más gyakori dekorátorok is rendelkezhetnek megfelelő attribútumokkal. Más dekorátorok számára saját attribútumokat hozhat létre.
  3. Több megbocsátó szintaxis: A C#-fordító a JavaScript által megköveteltnél szigorúbban elemzi a kódot.

Ha webalkalmazást készít, érdemes megfontolnia a Blazor használatát az alkalmazás létrehozásához. A Blazor egy .NET-hez és C#-hoz készült teljes veremű webes keretrendszer. A Blazor-összetevők futtathatók a kiszolgálón, .NET-szerelvényekként vagy az ügyfélen a WebAssembly használatával. A Blazor támogatja a kedvenc JavaScript- vagy TypeScript-kódtárakkal való együttműködést.