Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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.
-
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 ,elseswitchugyanazok. Afor,while, ésdo...whileismétlődő utasításai megegyeznek. Aclassés ainterfacekulcsszavai c# és TypeScript nyelven is szerepelnek. A TypeScript és a C# hozzáférési módosítóipublicésprivateközött ugyanazok. -
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. - függvényhierarchiák: Mindhárom nyelv támogatja helyi függvényeket, amelyek más függvényekben definiált függvények.
-
Async / Await: Mindhárom nyelv ugyanazt a
asyncésawaitkulcsszavakat használja az aszinkron programozáshoz. - szemétgyűjtési: Mindhárom nyelv egy szemétgyűjtőre támaszkodik az automatikus memóriakezeléshez.
-
eseménymodell: A C#
eventszintaxisa hasonló a JavaScript-modell dokumentumobjektum-modell (DOM) eseményeihez. - 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:
-
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
classvagystructtípusokat. Definiálhat olyaninterfacedefiní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ú. -
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
iskifejezés ellenőrzi, hogy egy változó megegyezik-e valamilyen mintázattal. A mintaalapúswitchkifejezés gazdag szintaxist biztosít a változók vizsgálatához és a jellemzői alapján történő döntéshozatalhoz. - 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.
-
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 egynullé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. - 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:
-
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
dynamictípus a C#-ban, amely futtatókörnyezeti kötést biztosít. -
prototípusalapú öröklődés: A C#-öröklés a típusdeklaráció része. A C#-
classdeklará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. - É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:
- Uniótípusok: A C# nem támogatja az egyesítő típusokat. A tervezési javaslatok azonban folyamatban vannak.
-
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. - 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.