Maison >développement back-end >Tutoriel C#.Net >Comment utiliser le code managé et le code non managé en C#

Comment utiliser le code managé et le code non managé en C#

王林
王林original
2023-10-10 16:41:151326parcourir

Comment utiliser le code managé et le code non managé en C#

Comment utiliser le code managé et le code non managé en C# nécessite des exemples de code spécifiques

En programmation C#, nous devons souvent utiliser du code managé et du code non managé pour réaliser certaines fonctions spécifiques. Le code managé fait référence au code qui s'exécute dans le CLR (Common Language Runtime) et est géré par le CLR pour la gestion de la mémoire et l'allocation des ressources. Le code non géré fait référence au code qui s'exécute directement sur le système d'exploitation et n'est pas contrôlé par le CLR. Ce qui suit présente comment utiliser respectivement le code managé et le code non managé, avec des exemples.

1. Utilisation du code managé

  1. Définition du code managé
    En C#, tout le code source est du code managé. CLR compile le code C# en langage intermédiaire IL (Intermediate Language), puis le compile en code machine pour exécution via JIT (Just-In-Time) au moment de l'exécution. Ce mode de fonctionnement peut réaliser les avantages de la gestion multiplateforme et automatique de la mémoire.
  2. Exemple d'utilisation de code managé

Par exemple, nous souhaitons utiliser une classe managée nommée "MathHelper" en C# pour fournir une méthode statique pour implémenter la fonction d'addition de deux nombres.

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);
    }
}

Dans l'exemple ci-dessus, nous avons défini une classe gérée nommée "MathHelper", qui contient une méthode statique "Add" pour implémenter la fonction d'addition de deux entiers. Dans la méthode Main, nous appelons la méthode Add de la classe MathHelper pour imprimer les résultats.

2. Utilisation de code non managé

  1. Définition du code non managé
    Le code non managé fait référence au code qui interagit directement avec le système d'exploitation, généralement écrit dans des langages tels que C ou C++. Étant donné que le code non géré exploite directement la mémoire et les ressources système, une gestion manuelle de la mémoire et la libération des ressources sont nécessaires.
  2. Exemple d'utilisation de code non géré

Supposons que nous disposions d'une bibliothèque de liens dynamiques (DLL) non gérée qui contient une fonction appelée "NativeHelper" utilisée pour calculer la moyenne de deux nombres. Nous pouvons utiliser cette fonction non gérée à l'aide d'appels de plateforme (P/Invoke) en C#.

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);
    }
}

Dans l'exemple ci-dessus, nous utilisons l'attribut [DllImport] pour déclarer des fonctions dans du code non managé. Nous pouvons utiliser cette fonction non gérée en C# en spécifiant le nom de la DLL et le nom de la fonction. Dans la méthode Main, nous appelons la fonction CalculateAverage pour calculer la moyenne de deux entiers et imprimer le résultat.

Il convient de noter que lors de l'utilisation de code non géré, nous devons nous assurer que la libération de mémoire et de ressources est placée dans des endroits appropriés pour éviter les fuites de mémoire et le gaspillage de ressources.

Résumé :

Cet article explique comment utiliser le code managé et le code non managé en C#, et donne des exemples de code spécifiques. Le code managé est géré par le CLR pour la gestion de la mémoire et l'allocation des ressources, et présente les avantages d'une gestion multiplateforme et automatique de la mémoire ; le code non géré est du code directement sur le système d'exploitation et nécessite une gestion manuelle de la mémoire et des ressources. Dans la programmation réelle, nous pouvons utiliser du code managé et du code non managé selon les besoins pour implémenter des fonctions spécifiques.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn