Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
C#, TypeScript und JavaScript sind alle Mitglieder der C-Familie von Sprachen. Die Ähnlichkeiten zwischen den Sprachen helfen Ihnen, schnell produktiv in C# zu werden.
-
Ähnliche Syntax: JavaScript, TypeScript und C# befinden sich in der C-Familie der Sprachen. Diese Ähnlichkeit bedeutet, dass Sie C# bereits lesen und verstehen können. Es gibt einige Unterschiede, aber die meiste Syntax ist gleich wie bei JavaScript und C. Die geschweiften Klammern und Semikolons sind vertraut. Steuerelementanweisungen wie
if
,else
undswitch
sind identisch. Die Schleifenanweisungenfor
,while
, unddo
...while
sind ebenfalls identisch. Die gleichen Schlüsselwörter fürclass
undinterface
befinden sich sowohl in C# als auch in TypeScript. Die Zugriffsmodifizierer in TypeScript und C#, vonpublic
bisprivate
, sind identisch. -
Das
=>
Token: Alle Sprachen unterstützen einfache Funktionsdefinitionen. In C# werden sie in JavaScript als Lambda-Ausdrücke bezeichnet, sie werden in der Regel als Pfeilfunktionen bezeichnet. - Funktionshierarchien: Alle drei Sprachen unterstützen lokale Funktionen, die in anderen Funktionen definiert sind.
-
Async /Await: Alle drei Sprachen verwenden die gleichen
async
undawait
Schlüsselwörter für die asynchrone Programmierung. - Garbage Collection: Alle drei Sprachen basieren auf einem Garbage Collector für die automatische Speicherverwaltung.
-
Ereignismodell: Die Syntax von
event
C# ähnelt dem JavaScript-Modell für DOM-Ereignisse (Document Object Model). - Paket-Manager: NuGet ist der am häufigsten verwendete Paket-Manager für C# und .NET, ähnlich wie npm für JavaScript-Anwendungen. C#-Bibliotheken werden in Assemblys bereitgestellt.
Während Sie C# lernen, lernen Sie Konzepte kennen, die nicht Teil von JavaScript sind. Einige dieser Konzepte sind Ihnen möglicherweise vertraut, wenn Sie TypeScript verwenden:
-
C#-Typsystem: C# ist eine stark typierte Sprache. Jede Variable hat einen Typ, und dieser Typ kann nicht geändert werden. Sie definieren
class
oderstruct
typen. Sie können Definitionen definiereninterface
, die das von anderen Typen implementierte Verhalten definieren. TypeScript enthält viele dieser Konzepte, aber da TypeScript auf JavaScript basiert, ist das Typsystem nicht so streng. -
Musterabgleich: Der Musterabgleich ermöglicht präzise bedingte Anweisungen und Ausdrücke basierend auf der Form komplexer Datenstrukturen. Der
is
Ausdruck überprüft, ob eine Variable ein Bestimmtes Muster ist. Der musterbasierteswitch
-Ausdruck bietet eine umfangreiche Syntax, um eine Variable zu prüfen und Entscheidungen basierend auf ihren Merkmalen zu treffen. - Zeichenfolgeninterpolation und Rohzeichenfolgenliterale: Mit der Zeichenfolgeninterpolation können Sie ausgewertete Ausdrücke in eine Zeichenfolge einfügen, anstatt Positionsbezeichner zu verwenden. Rohzeichenfolgenliterale bieten eine Möglichkeit, Escapesequenzen im Text zu minimieren.
-
Nullable- und Non-Nullable-Typen: C# unterstützt Nullable-Werttypen und Nullable-Verweistypen, indem das
?
-Suffix an einen Typ angefügt wird. Bei Nullable-Typen werden Sie vom Compiler gewarnt, wenn Sie den Code nicht aufnull
überprüfen, bevor Sie den Ausdruck dereferenzieren. Bei Non-Nullable-Typen werden Sie vom Compiler gewarnt, wenn Sie dieser Variablen möglicherweise einennull
-Wert zuweisen. Mithilfe dieser Features können Sie die Anzahl der von Ihrer Anwendung ausgelösten System.NullReferenceException-Klassen minimieren. Die Syntax könnte aus der Verwendung von?
durch TypeScript für optionale Eigenschaften vertraut sein. - LINQ: Language Integrated Query (LINQ) bietet eine allgemeine Syntax zum Abfragen und Transformieren von Daten (unabhängig vom Speicher).
Wenn Sie mehr darüber lernen, werden weitere Unterschiede offensichtlich, aber viele dieser Unterschiede sind weniger bedeutend.
Einige vertraute Features und Idiome aus JavaScript und TypeScript sind in C# nicht verfügbar:
-
dynamische Typen: C# verwendet statische Typisierung. Eine Variabledeklaration enthält den Typ, und dieser Typ kann nicht geändert werden. Es gibt einen
dynamic
Typ in C#, der laufzeitbindung bereitstellt. -
Prototypische Vererbung: C#-Vererbung ist Teil der Typdeklaration. Eine C#
class
-Deklaration gibt eine beliebige Basisklasse an. In JavaScript können Sie die__proto__
Eigenschaft so festlegen, dass der Basistyp für jede Instanz festgelegt wird. - Interpretierte Sprache: C#-Code muss kompiliert werden, bevor Sie ihn ausführen. JavaScript-Code kann direkt im Browser ausgeführt werden.
Darüber hinaus stehen einige weitere TypeScript-Features in C# nicht zur Verfügung:
- Union-Typen: C# unterstützt keine Union-Typen. Designvorschläge sind jedoch in Bearbeitung.
-
Dekorateure: C# verfügt nicht über Dekorateure. Einige gängige Decorators (z. B.
@sealed
) sind in C# reservierte Schlüsselwörter. Andere gängige Dekorateure verfügen möglicherweise über entsprechende Attribute. Für andere Dekorateure können Sie eigene Attribute erstellen. - Verzeihlichere Syntax: Der C#-Compiler parst Code strenger als JavaScript erfordert.
Wenn Sie eine Webanwendung erstellen, sollten Sie die Verwendung von Blazor zum Erstellen Ihrer Anwendung in Betracht ziehen. Blazor ist ein Full-Stack-Webframework, das für .NET und C# erstellt wurde. Blazor-Komponenten können auf dem Server, als .NET-Assemblys oder auf dem Client mit WebAssembly ausgeführt werden. Blazor unterstützt die Interoperabilität mit Ihren bevorzugten JavaScript- oder TypeScript-Bibliotheken.