Heim  >  Artikel  >  Backend-Entwicklung  >  C# Advanced Programming (1) – .NET-Architektur

C# Advanced Programming (1) – .NET-Architektur

黄舟
黄舟Original
2017-03-20 11:15:261301Durchsuche

1.1 C#Beziehung zu .NET

 C# kann nicht isoliert verwendet werden und muss zusammen mit dem .NET Framework verwendet werden.

  (1) Die Architektur und Methodik von C# spiegeln die grundlegende Methodik von .NET wider.

 (2) In den meisten Fällen hängen die spezifischen Sprachfunktionen von C# von .NET-Funktionen ab oder basieren auf .NET-Basisklassen.

Einige von .NET unterstützte Funktionen werden von C# nicht unterstützt. Es gibt andere von der C#-Sprache unterstützte Funktionen, die von .NET nicht unterstützt werden.

1.2 Common Language Runtime (CLR)

 1.2.1 Plattformunabhängigkeit

Der Kern Der Kern des .NET Frameworks ist seine Laufzeitumgebung, die Common Language Runtime (CLR) oder .NET Runtime genannt wird.

Code, der unter der Kontrolle der CLR ausgeführt wird, wird normalerweise als verwalteter Code bezeichnet.

So kompiliert .NET Code:

Phase 1: Kompilieren Sie den Quellcode in Microsoft Intermediate Language (IL).

*IL ähnelt dem Bytecode in JAVA.

Phase 2: CLR kompiliert IL in plattformspezifischen Code.

1.2.2 Verbesserung der Leistung

Der JIT (Just-in-Time-Compiler) kompiliert, wenn die Anwendung ausgeführt wird, sodass der JIL Bescheid weiß Je nachdem, auf welchem ​​Prozessortyp das Programm ausgeführt wird, kann es für diesen Prozessor optimiert werden, um die Leistung zu verbessern.

 1.2.3 Sprachinteroperabilität

 Visual Basic 2013, Visual C++ 2013, Visual F#, COM und COM+, Windows-Runtime.

1.3 Zwischensprache

Die Hauptmerkmale der Zwischensprache:


    • IL erlaubt im Allgemeinen keine Operationen an mehrdeutigen Datentypen , obwohl das Erzwingen der Typsicherheit in den meisten Fällen die Leistung zu beeinträchtigen scheint Im Folgenden erhalten wir weitere Vorteile aus den von .NET bereitgestellten Diensten, die auf Typsicherheit basieren. Zu diesen Diensten gehören:

    • Sprachinteroperabilität

    • Werttyp (Variablentyp), Variablen speichern ihre Daten direkt, Zwischensprache wird auf dem Stapel gespeichert (wenn sie als Felder in einem Referenztyp deklariert werden, werden sie inline im Stapel gespeichert).

    • Referenztyp (Referenztyp), Variablen speichern nur Adressen und Instanzen von Referenztypen werden immer in einem Speicherbereich namens „verwalteter Heap“ gespeichert.

    • Erzwungenes Tippen

    • Die wahre Bedeutung der Sprachinteroperabilität Die Verwendung einer Sprachklasse sollte sein geschrieben, um direkt mit Klassen zu kommunizieren, die in einer anderen Sprache geschrieben sind. Ein solches Tool wird (von der Visual Studio-IDE) bereitgestellt (nicht von der CLR).

    • Objektorientiert und unter Verwendung von Schnittstellen

    • Werttypen und Signifikante Unterschiede zwischen Referenztypen.

Die Bedeutung einer starken Datentypisierung für die Sprachinteroperabilität

Wenn eine Klasse von Instanzen abgeleitet ist oder diese enthält Für andere Klassen muss es alle von anderen Klassen verwendeten Datentypen kennen, weshalb die Sprachinteroperabilität sehr wichtig ist.

Lösungen in .NET



    • Common Type System (CTS)



CTS definiert vordefinierte Daten, die in den Zwischensprachentypen verwendet werden können Alle Sprachen, die auf das .NET Framework abzielen, können kompilierten Code generieren, der letztendlich auf diesen Typen basiert.

Mit CTS können Sie auch Ihre eigenen Codetypen definieren.

Die hierarchische Struktur von CTS spiegelt die Einzigartigkeit der Zwischensprache wider. erbt den objektorientierten Ansatz von .


    • Common Language Specification (CLS)


Es ist akzeptabel, Nicht-CLS-Code zu schreiben, wir können jedoch nicht garantieren, dass IL kompiliert wird Der Code unterstützt die Sprachinteroperabilität vollständig.

    • Müllabfuhr

    • Sicherheit

    • Anwendungsdomäne

    • Der Garbage Collector wird für die Speicherverwaltung in .NET verwendet, insbesondere kann er den benötigten Speicher wiederherstellen Ausführen von Anwendungen.

    • Überprüfen Sie den verwalteten Heap auf nicht referenzierte Objekte und löschen Sie diese.

    • Verwenden Sie Ausnahmen, um Fehler zu behandeln

    • Verwenden Sie Attribute

Das obige ist der detaillierte Inhalt vonC# Advanced Programming (1) – .NET-Architektur. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn