IRONSOFTWAREHOME
MISES À JOUR POUR LES DÉVELOPPEURS

Mot-clé virtual en C# : comment ça fonctionne pour les développeurs

Jacob Mellor, Directeur technique @ Team Iron
Jacob Mellor
Updated: 23 avril 2026

En C#, le mot-clé virtual est un concept crucial en programmation orientée objet qui facilite le polymorphisme, permettant aux développeurs de remplacer des méthodes dans les classes dérivées. Ce mot-clé, lorsqu'il est appliqué à une méthode, une propriété ou un événement de classe, indique que l'entité peut avoir son comportement modifié par une classe dérivée en utilisant le mot-clé override. Dans ce tutoriel, nous allons apprendre le mot-clé virtuel en C# et explorer la bibliothèque IronPDF. Plongeons-nous directement dans son fonctionnement et voyons-le en action avec des exemples pratiques.

Méthodes Virtuelles en Action

Utilisation Basique du Mot-Clé Virtual

Au cœur du concept, une méthode virtuelle est une méthode de classe de base qui permet aux classes dérivées de fournir une implémentation spécifique pour les méthodes déjà définies dans la classe de base.

Le mot-clé virtual en C# marque une méthode, une propriété ou un événement comme virtuel, signalant qu'il peut être remplacé dans toute classe qui en hérite. Prenons l'exemple suivant où nous définissons une classe de base Shape avec une méthode virtuelle Area :

public class Shape
{
    public virtual double Area()
    {
        return 0; // Default implementation, returns 0
    }
}

Remplacement des Méthodes Virtuelles

Les classes dérivées peuvent remplacer ces méthodes virtuelles pour fournir leur propre implémentation, adaptée aux besoins spécifiques de la classe dérivée. En utilisant le mot-clé override, créons une classe Circle qui dérive de Shape et fournit sa propre version de la méthode Area :

public class Circle : Shape
{
    public double Radius { get; set; }
    
    public Circle(double radius)
    {
        Radius = radius;
    }

    public override double Area()
    {
        // Own implementation for circle area
        return Math.PI * Radius * Radius; 
    }
}

Dans le code ci-dessus, la classe Circle fournit son implémentation spécifique de la méthode Area, qui calcule l'aire d'un cercle. Cela démontre la puissance des méthodes virtuelles dans le polymorphisme.

Méthodes Non-Virtuelles

Il est important de noter que toutes les méthodes ne doivent pas ou ne devraient pas être virtuelles. Une méthode non-virtuelle est définie de manière à ne pas pouvoir être remplacée dans les classes dérivées, ce qui signifie que l'implémentation initiale reste inchangée et est utilisée par toutes les classes qui en héritent. Cela est utile lorsqu'une classe de base fournit une implémentation standard qui ne doit pas être modifiée.

Application Pratique

Mettons ces concepts en pratique dans un scénario pratique. Considérez le programme suivant qui utilise nos classes Shape et Circle :

public class Program
{
    public static void Main(string[] args)
    {
        Shape myShape = new Shape();
        Shape myCircle = new Circle(5);

        // Display the area calculation of the default and overridden methods.
        Console.WriteLine($"Shape area: {myShape.Area()}");
        Console.WriteLine($"Circle area: {myCircle.Area()}");
    }
}

L'exemple de programme ci-dessus démontre le polymorphisme en action et l'essence des fonctions virtuelles. Malgré le fait que myCircle soit déclaré comme un Shape, il appelle la méthode Area remplacée de la classe Circle, illustrant le mécanisme de répartition dynamique facilité par les mots-clés virtual et override.

Mot-clé virtuel C# (Comment cela fonctionne pour les développeurs) : Figure 1 - Sortie console du code ci-dessus montrant comment myCircle appelle la méthode Area redéfinie

Utilisations Avancées des Mots-Clés Virtuel et Override

Méthodes et Classes Abstraites

Les méthodes abstraites sont un pas de plus, utilisées dans les classes abstraites. Une méthode abstraite est une méthode déclarée dans la classe de base sans implémentation et doit être remplacée dans les classes dérivées. Elle oblige les classes dérivées à fournir une implémentation pour la méthode abstraite, assurant une interface cohérente tout en permettant un comportement personnalisé dans chaque classe dérivée.

Surcharge de Méthode vs Remplacement

Il est également crucial de comprendre la différence entre la surcharge de méthode et le remplacement de méthode. La surcharge de méthode se produit au sein de la même classe et permet à plus d'une méthode de porter le même nom mais avec des paramètres différents. Le remplacement de méthode, facilité par les mots-clés virtual et override, permet à une classe dérivée de fournir une implémentation différente pour une méthode définie dans la classe de base.

Propriétés et Événements Virtuels

En plus des méthodes, les propriétés et événements peuvent également être virtuels. Cela permet aux classes dérivées de fournir des accesseurs, mutateurs et gestionnaires d'événements personnalisés, améliorant davantage la flexibilité des hiérarchies de classes.

IronPDF : Bibliothèque PDF for .NET

IronPDF est une bibliothèque complète conçue pour les développeurs C# afin de générer, manipuler et rendre des documents PDF directement dans les applications .NET. Elle offre une API intuitive qui simplifie le travail avec les fichiers PDF, comme l'utilisation de HTML pour créer un PDF, aidant les développeurs à créer, éditer et convertir des PDFs sans avoir besoin de comprendre la structure complexe sous-jacente des documents PDF ni de recourir à des logiciels externes. IronPDF s'intègre de manière transparente avec les fonctionnalités orientées objet du langage, y compris l'utilisation du mot-clé virtual, pour fournir des capacités de traitement PDF personnalisables.

L'utilisation du mot-clé virtual avec IronPDF permet aux développeurs d'étendre la fonctionnalité des classes d'IronPDF au sein de leurs applications. En définissant des classes de base avec des méthodes virtuelles liées à la génération ou la manipulation de PDFs, les développeurs peuvent créer des classes dérivées qui remplacent ces méthodes pour adapter le comportement de traitement PDF à des besoins spécifiques.

Exemple : Personnalisation du Rendu PDF avec les Méthodes Virtuelles

Imaginez que vous ayez une classe de base qui utilise IronPDF pour rendre des PDFs à partir de chaînes HTML. En marquant la méthode de rendu comme virtuelle, vous permettez aux classes dérivées de modifier ou d'améliorer le processus de rendu. Voici un exemple simple :

public class BasicPdfRenderer
{
    // Virtual method allowing customization in derived classes
    public virtual byte[] RenderHtmlToPdf(string htmlContent)
    {
        // Use IronPDF to render PDF from HTML
        var renderer = new IronPdf.ChromePdfRenderer();
        var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
        return pdfDocument.BinaryData;
    }
}

public class CustomPdfRenderer : BasicPdfRenderer
{
    // Overriding the base class method to implement custom rendering settings
    public override byte[] RenderHtmlToPdf(string htmlContent)
    {
        var renderer = new IronPdf.ChromePdfRenderer();
        var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);

        // Apply a prominent watermark to the PDF document
        pdfDocument.ApplyWatermark("<h2 style='color:red; font-size: 60px; opacity: 0.5; text-shadow: 2px 2px 5px grey;'>SAMPLE</h2>",
                                   30,
                                   IronPdf.Editing.VerticalAlignment.Middle,
                                   IronPdf.Editing.HorizontalAlignment.Center);

        // Return the binary data of the PDF document
        return pdfDocument.BinaryData;
    }
}

class Program
{
    static void Main(string[] args)
    {
        License.LicenseKey = "License-Key";

        // HTML content to be converted to PDF
        string htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a simple PDF document generated from HTML.</p>";
        
        // Create an instance of CustomPdfRenderer
        CustomPdfRenderer renderer = new CustomPdfRenderer();
        
        // Call RenderHtmlToPdf method to generate PDF binary data
        byte[] pdfData = renderer.RenderHtmlToPdf(htmlContent);
        
        // Specify the file path to save the PDF
        string filePath = "f:\\CustomRenderedPdf.pdf";
        
        // Save the binary data to a file
        File.WriteAllBytes(filePath, pdfData);
        
        // Output success message
        Console.WriteLine($"PDF generated and saved to {filePath}");
    }
}

Nous utilisons IronPDF au sein d'une classe BasicPdfRenderer pour convertir du HTML en PDF, en marquant sa méthode RenderHtmlToPdf comme virtuelle pour permettre la personnalisation. La classe CustomPdfRenderer, dérivée de BasicPdfRenderer, remplace cette méthode pour non seulement effectuer la conversion mais aussi pour injecter un filigrane distinct, grand, rouge à travers le PDF généré.

Fichier PDF de sortie

C'est le fichier PDF généré par IronPDF :

Mot-clé virtuel C# (Comment cela fonctionne pour les développeurs) : Figure 2 - Sortie du code d'exemple utilisant la méthode virtuelle RenderHtmlToPDF de CustomPdfRendered pour la conversion

Conclusion

Le mot-clé virtual en C# est une pierre angulaire de la programmation orientée objet, permettant le polymorphisme et la répartition dynamique. En permettant aux classes dérivées de fournir des implémentations spécifiques de méthodes, de propriétés et d'événements définis dans les classes de base, il permet aux développeurs de créer des structures de code flexibles et réutilisables. Grâce à des exemples pratiques et à la compréhension de la relation entre les méthodes virtuelles, les mécanismes de remplacement et les hiérarchies de classes, les développeurs peuvent utiliser ces concepts de manière efficace pour construire des applications robustes. De plus, ces concepts aideraient également les développeurs à utiliser IronPDF plus efficacement dans leurs applications. Vous pouvez tester IronPDF sans rien dépenser en utilisant ses options d'essai gratuit.

Jacob Mellor, Directeur technique @ Team Iron
Directeur technique

Jacob Mellor est directeur de la technologie chez Iron Software et un ingénieur visionnaire pionnier de la technologie C# PDF. En tant que développeur à l'origine de la base de code centrale d'Iron Software, il a façonné l'architecture des produits de l'entreprise depuis sa création, la transformant aux côtés du PDG Cameron Rimington en une entreprise de plus de 50 personnes au service de la NASA, de Tesla et d'agences gouvernementales mondiales.

...
Lire la suite

Articles connexes

Key in blue circle

Obtenez votre clé d'essai de 30 jours instantanément.

Your trial license will be sent to your email address

Aucune restriction. 100 % débloqué. Pas de carte bancaire.

OR
bullet_checkedAucune carte de crédit ou création de compte requiseAucune restriction. 100 % débloqué. Pas de carte bancaire.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
Réservez votre Démonstration en direct gratuite
Booking Badge

De confiance par des millions d'ingénieurs dans le monde entier

Logos des clients d'Iron Software
Obtenez Votre Consultation sans Engagement
Remplissez le formulaire ci-dessous ou envoyez un email à sales@ironsoftware.com
Vos informations seront toujours gardées confidentielles.
De confiance par des millions d'ingénieurs dans le monde entier
Logos des clients d'Iron Software
Obtenez votre clé d'essai 30 jours gratuitement.
Aucune carte de crédit ou création de compte requise
Bibliothèque C# NuGet pour PDF
Installer avec NuGet

Version : 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. Dans l'explorateur de solutions, faites un clic droit sur Références, Gestion des packages NuGet
  2. Sélectionnez Parcourir et recherchez « IronPDF »
  3. Sélectionnez le package et installez
C# PDF DLL
Télécharger DLL

Version : 2026.9

ou téléchargez l'installateur Windows ici.

  1. Téléchargez et décompressez IronPDF à un emplacement tel que ~/Libs dans votre répertoire de solution
  2. Dans l'explorateur de solutions Visual Studio, faites un clic droit sur Références. Sélectionnez Parcourir, « IronPDF.dll »

Licences à partir de 749 $