Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
C#, TypeScript en JavaScript zijn alle leden van de C-familie van talen. De overeenkomsten tussen de talen helpen u snel productief te worden in C#.
-
Vergelijkbare syntaxis: JavaScript, TypeScript en C# bevinden zich in de C-familie van talen. Deze overeenkomst betekent dat u C# al kunt lezen en begrijpen. Er zijn enkele verschillen, maar de meeste syntaxis is hetzelfde als JavaScript en C. De accolades en puntkomma's zijn bekend. De besturingsinstructies zoals
if
,else
switch
zijn hetzelfde. De lusinstructies vanfor
,while
endo
...while
zijn hetzelfde. Dezelfde trefwoorden voorclass
eninterface
bevinden zich in zowel C# als TypeScript. De toegangsmodificatoren in TypeScript en C#, vanpublic
totprivate
, zijn hetzelfde. -
Het
=>
token: alle talen ondersteunen lichtgewicht functiedefinities. In C# worden ze aangeduid als lambda-expressies, in JavaScript, worden ze meestal pijlfuncties genoemd. - Functiehiërarchieën: alle drie de talen ondersteunen lokale functies, die functies zijn gedefinieerd in andere functies.
-
Async/ Await: alle drie de talen delen dezelfde
async
enawait
trefwoorden voor asynchrone programmering. - Vuilophaling: Alle drie de talen maken gebruik van een vuilophaler voor automatisch geheugenbeheer.
-
Gebeurtenismodel: de syntaxis van
event
C# is vergelijkbaar met het JavaScript-model voor DOM-gebeurtenissen (Document Object Model). - Package Manager: NuGet is de meest voorkomende pakketbeheerder voor C# en .NET, vergelijkbaar met npm voor JavaScript-toepassingen. C#-bibliotheken worden geleverd in assembly's.
Terwijl u C# leert, leert u concepten die geen deel uitmaken van JavaScript. Sommige van deze concepten zijn mogelijk bekend als u TypeScript gebruikt:
-
C#-typesysteem: C# is een sterk getypte taal. Elke variabele heeft een type en dat type kan niet worden gewijzigd. U definieert
class
- ofstruct
-types. U kunt definities definiëreninterface
waarmee gedrag wordt gedefinieerd dat door andere typen wordt geïmplementeerd. TypeScript bevat veel van deze concepten, maar omdat TypeScript is gebouwd op JavaScript, is het typesysteem niet zo strikt. -
Patroonkoppeling: Patroonkoppeling maakt beknopte voorwaardelijke instructies en expressies mogelijk op basis van de vorm van complexe gegevensstructuren. De
is
expressie controleert of een variabele 'is' een bepaald patroon heeft. De op patronen gebaseerdeswitch
expressie biedt een uitgebreide syntaxis om een variabele te inspecteren en beslissingen te nemen op basis van de kenmerken ervan. - Tekenreeksinterpolatie en letterlijke tekenreeksen: met tekenreeksinterpolatie kunt u geëvalueerde expressies in een tekenreeks invoegen in plaats van positionele id's te gebruiken. Letterlijke onbewerkte tekenreeksen bieden een manier om escape-sequenties in tekst te minimaliseren.
-
Nullable en niet-nullable typen: C# ondersteunt nullable waardetypen en nullable verwijzingstypen door het
?
achtervoegsel toe te voegen aan een type. Voor nullable typen waarschuwt de compiler u als u niet controleert op null voordat u de expressie derefereert. Voor niet-null-typen waarschuwt de compiler u als u mogelijk eennull
waarde aan die variabele toewijst. Deze functies kunnen de kans verkleinen dat uw toepassing een System.NullReferenceException genereert. De syntaxis is mogelijk bekend bij het gebruik van?
TypeScript voor optionele eigenschappen. - LINQ: Language Integrated Query (LINQ) biedt een algemene syntaxis voor het opvragen en transformeren van gegevens, ongeacht de opslag.
Naarmate u meer leert, worden andere verschillen zichtbaar, maar veel van deze verschillen zijn van kleinere omvang.
Sommige vertrouwde functies en idiomen van JavaScript en TypeScript zijn niet beschikbaar in C#:
-
dynamische typen: C# maakt gebruik van statisch typen. Een variabeledeclaratie bevat het type en dat type kan niet worden gewijzigd. Er is een
dynamic
type in C# dat runtimebinding biedt. -
Prototypische overerving: C#-overerving maakt deel uit van de typedeclaratie. Een C#
class
-declaratie geeft een basisklasse weer. In JavaScript kunt u de__proto__
eigenschap instellen om het basistype in te stellen op elk exemplaar. - Geïnterpreteerde taal: C#-code moet worden gecompileerd voordat u deze uitvoert. JavaScript-code kan rechtstreeks in de browser worden uitgevoerd.
Daarnaast zijn er nog enkele TypeScript-functies niet beschikbaar in C#:
- Samenvoegtypen: C# biedt geen ondersteuning voor samenvoegtypen. Ontwerpvoorstellen worden echter uitgevoerd.
-
Decorators: C# heeft geen decorators. Enkele algemene decorators, zoals
@sealed
, zijn gereserveerde trefwoorden in C#. Andere veelvoorkomende decorators kunnen bijbehorende Attributen hebben. Voor andere decorators kunt u uw eigen kenmerken maken. - Meer vergevende syntaxis: de C#-compiler parseert code strikter dan JavaScript vereist.
Als u een webtoepassing bouwt, kunt u overwegen blazor te gebruiken om uw toepassing te bouwen. Blazor is een volledig stack-webframework dat is gebouwd voor .NET en C#. Blazor-onderdelen kunnen worden uitgevoerd op de server, als .NET-assembly's of op de client met behulp van WebAssembly. Blazor ondersteunt interop met uw favoriete JavaScript- of TypeScript-bibliotheken.