Heim  >  Artikel  >  Backend-Entwicklung  >  So verwenden Sie verwalteten und nicht verwalteten Code in C#

So verwenden Sie verwalteten und nicht verwalteten Code in C#

王林
王林Original
2023-10-10 16:41:151261Durchsuche

So verwenden Sie verwalteten und nicht verwalteten Code in C#

Für die Verwendung von verwaltetem Code und nicht verwaltetem Code in C# sind bestimmte Codebeispiele erforderlich.

Bei der C#-Programmierung müssen wir häufig verwalteten Code und nicht verwalteten Code verwenden, um bestimmte Funktionen zu erreichen. Unter verwaltetem Code versteht man Code, der in der CLR (Common Language Runtime) ausgeführt wird und von der CLR zur Speicherverwaltung und Ressourcenzuweisung verwaltet wird. Unter nicht verwaltetem Code versteht man Code, der direkt auf dem Betriebssystem ausgeführt wird und nicht von der CLR gesteuert wird. Im Folgenden wird anhand von Beispielen erläutert, wie verwalteter Code bzw. nicht verwalteter Code verwendet wird.

1. Verwendung von verwaltetem Code

  1. Definition von verwaltetem Code
    In C# ist der gesamte Quellcode verwalteter Code. CLR kompiliert C#-Code in die Zwischensprache IL (Intermediate Language) und kompiliert ihn dann in Maschinencode zur Ausführung über JIT (Just-In-Time) zur Laufzeit. Dieser Betriebsmodus kann die Vorteile einer plattformübergreifenden und automatischen Speicherverwaltung nutzen.
  2. Beispiel für die Verwendung von verwaltetem Code

Zum Beispiel möchten wir eine verwaltete Klasse namens „MathHelper“ in C# verwenden, um eine statische Methode zum Implementieren der Funktion zum Addieren zweier Zahlen bereitzustellen.

using System;

public class MathHelper
{
    public static int Add(int a, int b)
    {
        return a + b;
    }
}

class Program
{
    static void Main(string[] args)
    {
        int result = MathHelper.Add(1, 2);
        Console.WriteLine("The result of adding is: " + result);
    }
}

Im obigen Beispiel haben wir eine verwaltete Klasse namens „MathHelper“ definiert, die eine statische Methode „Add“ enthält, um die Funktion des Addierens zweier Ganzzahlen zu implementieren. In der Main-Methode rufen wir die Add-Methode der MathHelper-Klasse auf, um die Ergebnisse auszudrucken.

2. Verwendung von nicht verwaltetem Code

  1. Definition von nicht verwaltetem Code
    Unverwalteter Code bezieht sich auf Code, der direkt mit dem Betriebssystem interagiert und normalerweise in Sprachen wie C oder C++ geschrieben ist. Da nicht verwalteter Code Speicher- und Systemressourcen direkt betreibt, sind manuelle Speicherverwaltung und Ressourcenfreigabe erforderlich.
  2. Beispiel mit nicht verwaltetem Code

Angenommen, wir haben eine nicht verwaltete Dynamic Link Library (DLL), die eine Funktion namens „NativeHelper“ enthält, die zur Berechnung des Durchschnitts zweier Zahlen verwendet wird. Wir können diese nicht verwaltete Funktion mithilfe von Plattformaufrufen (P/Invoke) in C# verwenden.

using System;
using System.Runtime.InteropServices;

public class Program
{
    [DllImport("NativeLibrary.dll")]
    public static extern double CalculateAverage(int a, int b);

    public static void Main(string[] args)
    {
        int num1 = 10;
        int num2 = 20;

        double average = CalculateAverage(num1, num2);
        Console.WriteLine("The average is: " + average);
    }
}

Im obigen Beispiel verwenden wir das Attribut [DllImport], um Funktionen in nicht verwaltetem Code zu deklarieren. Wir können diese nicht verwaltete Funktion in C# verwenden, indem wir den Namen der DLL und den Namen der Funktion angeben. In der Main-Methode rufen wir die Funktion CalculateAverage auf, um den Durchschnitt zweier Ganzzahlen zu berechnen und das Ergebnis auszugeben.

Es ist zu beachten, dass wir bei der Verwendung von nicht verwaltetem Code sicherstellen müssen, dass die Freigabe von Speicher und Ressourcen an geeigneten Stellen erfolgt, um Speicherlecks und Ressourcenverschwendung zu verhindern.

Zusammenfassung:

Dieser Artikel beschreibt die Verwendung von verwaltetem und nicht verwaltetem Code in C# und enthält spezifische Codebeispiele. Verwalteter Code wird von der CLR für die Speicherverwaltung und Ressourcenzuweisung verwaltet und bietet die Vorteile einer plattformübergreifenden und automatischen Speicherverwaltung. Bei nicht verwaltetem Code handelt es sich um Code direkt auf dem Betriebssystem, der eine manuelle Verwaltung von Speicher und Ressourcen erfordert. Bei der eigentlichen Programmierung können wir je nach Bedarf verwalteten Code und nicht verwalteten Code verwenden, um bestimmte Funktionen zu implementieren.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie verwalteten und nicht verwalteten Code in C#. 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