AIDE .NET

C# interne (Comment ça marche pour les développeurs)

Introduction

Lorsqu'il s'agit de gérer la visibilité des classes, méthodes et propriétés de formulaires à l'intérieur d'un programme statique void main, les modificateurs d'accès sont essentiels dans le langage de programmation C# pour le développement basé sur les composants. Lors de la construction d'interfaces graphiques modulaires et faciles à entretenir, l'un des modificateurs d'accès les plus pertinents est le terme "interne". L'idée de C# internal sera discutée dans cet article, ainsi que plusieurs applications utiles pour IronPDF, un cadre C# flexible pour gérer les documents PDF.

Comment utiliser les membres internes dans le développement basé sur des composants en C

  1. Créer un projet C#.

  2. Comprendre le modificateur d'accès interne.

  3. Appliquer le terme "interne" aux membres.

  4. Organiser le code au niveau de l'assemblage.

  5. Utiliser des éléments internes au sein d'un même assemblage.

  6. Compiler le code.

Comprendre le modificateur d'accès interne

Le mot-clé interne/modificateur d'accès en C# limite la visibilité d'un type ou d'un membre à celle d'autres membres au sein du même assemblage. Cela implique que toute classe, qu'il s'agisse d'une classe dérivée, d'une méthode ou d'une propriété étiquetée comme interne, est accessible à d'autres types au sein du même assemblage, mais n'est pas disponible pour les types extérieurs à l'assemblage. Ce degré de contrôle d'accès est essentiel pour l'encapsulation, car il permet de spécifier les particularités de l'implémentation qui doivent être utilisées exclusivement dans le même assemblage et de manière privée.

En C#, vous pouvez utiliser le modificateur interne de la manière suivante :

Classe interne

Déclarer une classe qui n'est disponible que dans le même assemblage en utilisant internal.

// Assembly1
internal class InternalClass
{
    // Members of InternalClass
}
// Assembly1
internal class InternalClass
{
    // Members of InternalClass
}
' Assembly1
Friend Class InternalClass
	' Members of InternalClass
End Class
$vbLabelText   $csharpLabel

Membres de la classe interne

Limiter la visibilité des membres d'une classe, tels que les champs, les propriétés et les méthodes, au même assemblage en appliquant des règles internes.

// Assembly1
internal class MyClass
{
    internal static int InternalField;
    internal void InternalMethod() { }
}
// Assembly1
internal class MyClass
{
    internal static int InternalField;
    internal void InternalMethod() { }
}
' Assembly1
Friend Class [MyClass]
	Friend Shared InternalField As Integer
	Friend Sub InternalMethod()
	End Sub
End Class
$vbLabelText   $csharpLabel

Interface interne

Déclarer une interface qui ne peut être accédée qu'au sein du même assemblage en utilisant le modificateur d'accès interne.

// Assembly1
internal interface IInternalInterface
{
    // Interface members
}
// Assembly1
internal interface IInternalInterface
{
    // Interface members
}
' Assembly1
Friend Interface IInternalInterface
	' Interface members
End Interface
$vbLabelText   $csharpLabel

Classe interne imbriquée

Déclarer une classe imbriquée qui ne peut être accédée qu'à l'intérieur du même assemblage en utilisant internal.

// Assembly1
public class OuterClass
{
    internal class InternalNestedClass
    {
        // Members of InternalNestedClass
    }
}
// Assembly1
public class OuterClass
{
    internal class InternalNestedClass
    {
        // Members of InternalNestedClass
    }
}
' Assembly1
Public Class OuterClass
	Friend Class InternalNestedClass
		' Members of InternalNestedClass
	End Class
End Class
$vbLabelText   $csharpLabel

Assemblage interne

Limiter l'accès à l'ensemble de l'assemblage à partir d'assemblages externes en appliquant des mesures internes au niveau de l'assemblage.

[assembly: InternalsVisibleTo("ExternalAssembly")]
[assembly: InternalsVisibleTo("ExternalAssembly")]
<Assembly: InternalsVisibleTo("ExternalAssembly")>
$vbLabelText   $csharpLabel

Pendant le développement et les tests, les modificateurs d'accès internes peuvent être rendus accessibles à un assembly externe désigné en utilisant la propriété InternalsVisibleTo.

public class MyClassA
{
    internal void MyInternalMethod()
    {
        // Implementation details only accessible within Assembly A
    }
}
// Assembly B
public class MyClassB
{
    void SomeMethod()
    {
        MyClassA myObject = new MyClassA();
        myObject.MyInternalMethod(); // This will result in a compilation error
    }
}
public class MyClassA
{
    internal void MyInternalMethod()
    {
        // Implementation details only accessible within Assembly A
    }
}
// Assembly B
public class MyClassB
{
    void SomeMethod()
    {
        MyClassA myObject = new MyClassA();
        myObject.MyInternalMethod(); // This will result in a compilation error
    }
}
Public Class MyClassA
	Friend Sub MyInternalMethod()
		' Implementation details only accessible within Assembly A
	End Sub
End Class
' Assembly B
Public Class MyClassB
	Private Sub SomeMethod()
		Dim myObject As New MyClassA()
		myObject.MyInternalMethod() ' This will result in a compilation error
	End Sub
End Class
$vbLabelText   $csharpLabel

Étant donné que MyInternalMethod est désigné comme un membre interne dans cet exemple, il ne peut être accédé que depuis l'Assembly A. Une erreur de compilation se produira si vous essayez d'accéder à cette fonction à partir de l'Assemblée B.

La combinaison des modificateurs d'accès protégé et d'accès interne donne le modificateur d'accès interne protégé. Un membre (méthode, propriété ou champ) ou un type (classe, interface ou délégué) peut être accédé à la fois à l'intérieur et à l'extérieur de son assembly par des types dérivés grâce à un modificateur d'accès composé protégé interne. Le niveau d'accès interne protégé permet de trouver un équilibre entre la visibilité qu'offrent séparément les niveaux d'accès protégé et interne.

IronPDF

En utilisant le langage de programmation C#, IronPDF Official Site est une bibliothèque .NET qui permet aux développeurs de générer, éditer et modifier des documents PDF. Il offre un éventail d'outils et de fonctions permettant d'interagir avec les fichiers PDF de nombreuses façons, notamment en créant des PDF à partir de HTML, en convertissant des HTML en PDF, en combinant ou en divisant des documents PDF et en ajoutant des annotations, du texte et des photos à des PDF déjà existants.

Installer IronPDF

Obtenir la bibliothèque IronPDF ; c'est nécessaire pour le futur patch. Pour ce faire, saisissez le code suivant dans le gestionnaire de paquets :

Install-Package IronPdf

C# Internal (Comment cela fonctionne pour les développeurs) : Figure 1 - Installer IronPDF

L'utilisation du gestionnaire de paquets NuGet pour rechercher le paquetage "IronPDF" est une option supplémentaire. Nous pouvons choisir et télécharger le package nécessaire à partir de cette liste de tous les packages NuGet associés à IronPDF.

C# Interne (Comment ça fonctionne pour les développeurs) : Figure 2 - IronPDF Package

IronPDF excelle dans la conversion HTML en PDF, garantissant une préservation précise des mises en page et des styles d'origine. C'est parfait pour créer des PDF à partir de contenus basés sur le web, tels que des rapports, des factures et de la documentation. Avec la prise en charge des fichiers HTML, des URL et des chaînes HTML brutes, IronPDF produit facilement des documents PDF de haute qualité.

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}
using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}
Imports IronPdf

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim renderer = New ChromePdfRenderer()

		' 1. Convert HTML String to PDF
		Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"
		Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent)
		pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf")

		' 2. Convert HTML File to PDF
		Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file
		Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath)
		pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf")

		' 3. Convert URL to PDF
		Dim url = "http://ironpdf.com" ' Specify the URL
		Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
		pdfFromUrl.SaveAs("URLToPDF.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

Caractéristiques d'IronPDF

  • Convertissez HTML en PDF : Avec IronPDF, vous pouvez créer des documents PDF à partir de n'importe quel type d'information HTML, y compris des fichiers, des URL et des chaînes de code HTML.
  • Génération de PDF : En utilisant le langage de programmation C#, vous pouvez ajouter du texte, des graphiques et d'autres composants aux documents PDF par programmation.
  • Manipulation de PDF : IronPDF offre la possibilité de diviser un fichier PDF en plusieurs fichiers, de combiner plusieurs documents PDF en un seul fichier et de modifier des PDF déjà existants.
  • Formulaires PDF : La bibliothèque est utile dans les situations où des données de formulaire doivent être collectées et traitées, car elle permet aux utilisateurs de créer et de compléter des formulaires PDF.
  • Caractéristiques de sécurité : Les documents PDF peuvent être protégés par un mot de passe et une autorisation, et cryptés à l'aide d'IronPDF.
  • Extraction de texte : IronPDF peut être utilisé pour extraire du texte des fichiers PDF.

Encapsulation du traitement des PDF avec IronPDF

IronPDF offre une vaste gamme de fonctionnalités pour la génération, la modification et le traitement des documents PDF. Les détails de l'implémentation peuvent être cachés derrière les frontières de l'assemblage en enfermant le code de traitement du PDF dans des classes ou des méthodes internes. Pour en savoir plus sur IronPDF, consultez la documentation IronPDF.

Examinez la situation suivante :

// Assembly A (PDFHandlingLibrary)
internal class PdfProcessor
{
    internal void AddWatermark(IronPdf.PdfDocument pdfDocument, string watermarkText)
    {
        // Implementation details for adding a watermark using IronPDF
    }
    internal IronPdf.PdfDocument MergePdfDocuments(IEnumerable<IronPdf.PdfDocument> pdfDocuments)
    {
        // Implementation details for merging PDF documents using IronPDF
        return mergedPdfDocument;
    }
}
// Assembly B (MainApplication)
public class MainClass
{
    void ProcessPdfDocuments()
    {
        var Renderer = new IronPdf.HtmlToPdf();
        var pdfProcessor = Renderer.RenderHtmlAsPdf("<h1>Hello, IronPDF</h1>");;
        // Accessing internal methods within the same assembly is allowed
        pdfProcessor.ApplyWatermark("<h4>Confidential</h4>")
        IronPdf.PdfDocument mergedPdf = pdfProcessor.MergePdfDocuments(pdfDocumentList);
    }
}
// Assembly A (PDFHandlingLibrary)
internal class PdfProcessor
{
    internal void AddWatermark(IronPdf.PdfDocument pdfDocument, string watermarkText)
    {
        // Implementation details for adding a watermark using IronPDF
    }
    internal IronPdf.PdfDocument MergePdfDocuments(IEnumerable<IronPdf.PdfDocument> pdfDocuments)
    {
        // Implementation details for merging PDF documents using IronPDF
        return mergedPdfDocument;
    }
}
// Assembly B (MainApplication)
public class MainClass
{
    void ProcessPdfDocuments()
    {
        var Renderer = new IronPdf.HtmlToPdf();
        var pdfProcessor = Renderer.RenderHtmlAsPdf("<h1>Hello, IronPDF</h1>");;
        // Accessing internal methods within the same assembly is allowed
        pdfProcessor.ApplyWatermark("<h4>Confidential</h4>")
        IronPdf.PdfDocument mergedPdf = pdfProcessor.MergePdfDocuments(pdfDocumentList);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Dans cet exemple, la classe PdfProcessor de l'assemblage A utilise IronPDF pour encapsuler le code de traitement PDF. Les méthodes étant désignées comme internes, seuls les membres internes du même assemblage peuvent y accéder. La classe principale de l'assemblage B peut facilement utiliser ces fonctions internes. Pour en savoir plus sur le code IronPDF, consultez l'Exemple HTML vers PDF d'IronPDF.

C# Internal (Comment cela fonctionne pour les développeurs): Figure 3 - Sortie

Conclusion

Enfin, le modificateur interne C# permet de contrôler avec précision les types et les membres visibles à l'intérieur d'un assemblage. Il permet de créer des applications sûres, modulaires et faciles à maintenir lorsqu'il est utilisé conjointement avec IronPDF. Vous pouvez trouver un compromis entre l'abstraction, la sécurité et la facilité d'utilisation en enfermant le code lié à IronPDF dans des classes ou des méthodes internes. Lorsque vous travaillez avec des bibliothèques comme IronPDF qui gèrent des fonctions essentielles telles que le traitement des documents PDF, il est particulièrement important d'adopter les concepts d'encapsulation et d'accès limité pour promouvoir une architecture stable et évolutive dans vos applications C#.

Une licence très robuste, des options de refonte et une période plus longue de support de programmation sont tous inclus dans le forfait léger $749 d'IronPDF. Les clients peuvent tester l'article dans des conditions d'application réelles pendant la période de test en filigrane. En savoir plus sur IronPDF Licensing pour comprendre les avantages, le processus d'approbation et le formulaire de projet. Consultez le site Web d'Iron Software pour en savoir plus.

Chaknith Bin
Ingénieur logiciel
Chaknith travaille sur IronXL et IronBarcode. Il possède une expertise approfondie en C# et .NET, aidant à améliorer le logiciel et à soutenir les clients. Ses idées issues des interactions avec les utilisateurs contribuent à de meilleurs produits, une documentation améliorée et une expérience globale enrichie.
< PRÉCÉDENT
Expressions de correspondance de motifs en C# (Comment ça marche pour les développeurs)
SUIVANT >
C# LINQ Distinct (Comment ça marche pour les développeurs)