AIDE .NET

C# protégé (comment cela fonctionne pour les développeurs)

Publié janvier 4, 2024
Partager:

C# est un langage de programmation moderne, orienté objet et à sécurité de type, développé par Microsoft. Largement reconnu pour sa polyvalence, C# est utilisé dans diverses applications allant des logiciels de bureau au développement de jeux avec Unity. L'une des pierres angulaires d'une programmation C# efficace est la compréhension des modificateurs d'accès, qui dictent la manière dont les membres d'une classe sont accessibles à l'intérieur et à l'extérieur de celle-ci.

Les modificateurs d'accès en C# sont des mots-clés utilisés dans les déclarations de membres pour contrôler leur accessibilité depuis d'autres parties du code. Les modificateurs d'accès les plus couramment utilisés sont public, private et protected, chacun jouant un rôle unique dans la sauvegarde de l'intégrité des données et des principes d'encapsulation de la programmation orientée objet.

Pour les débutants, la compréhension du concept des modificateurs d'accès, en particulier lesprotected dans la programmation C#est important. Ces modificateurs permettent non seulement de définir l'interface d'une classe avec le monde extérieur, mais jouent également un rôle important dans l'héritage, un concept fondamental de la programmation orientée objet. Comprendre le fonctionnement de protected, de concert avec d'autres modificateurs tels que private protected et protected internal, est essentiel pour construire des applications C# robustes et faciles à maintenir.

Notions de base sur les modificateurs d'accès

Qu'est-ce qu'un modificateur d'accès ?

Les modificateurs d'accès en C# sont des mots-clés qui définissent le niveau d'accessibilité des membres de la classe(comme les méthodes, les propriétés et les variables) et les types. Ces modificateurs contrôlent où et comment les membres d'une classe peuvent être accédés, jouant ainsi un rôle essentiel dans la mise en œuvre de l'encapsulation dans la programmation orientée objet.

Aperçu des différents modificateurs d'accès

C# propose plusieurs modificateurs d'accès, chacun conçu pour des scénarios spécifiques :

  • Modificateur d'accès public : Le modificateur public permet l'accès au membre de la classe à partir de tout autre code du même projet ou d'un autre projet qui y fait référence. C'est le modificateur le moins restrictif.
  • Modificateur d'accès privé : À l'inverse, le modificateur "privé" restreint l'accès au membre de la classe à l'intérieur de la même classe. C'est le modificateur le plus restrictif et il est crucial pour cacher l'état interne d'un objet.
  • Modificateur d'accès protégé : Le modificateur d'accès protégé rend un membre de classe accessible au sein de sa classe et de toute classe dérivée. Ceci est particulièrement utile dans les scénarios d'héritage.
  • Modificateur d'accès interne : Les membres dotés du modificateur "interne" sont accessibles à l'intérieur du même assemblage, mais pas à partir d'autres assemblages.

    La compréhension de ces modificateurs d'accès de base jette les bases de concepts plus complexes en C#, tels que l'héritage et le polymorphisme, où le contrôle de l'accès aux classes devient crucial.

Comprendre le modificateur protégé

Le rôle du modificateur d'accès protégé dans le C# ;

Le modificateur protected en C# est un concept fondamental de la programmation orientée objet. Il permet à un membre de classe d'être accessible au sein de sa classe ainsi que dans les classes qui en sont dérivées. Ce niveau d'accessibilité est essentiel lorsque vous souhaitez permettre des fonctionnalités étendues tout en gardant le membre caché des autres parties du programme.

Accessibilité au sein de la même classe et des classes dérivées

Les membres protégés jouent un rôle important dans l'héritage. Elles sont accessibles dans la même classe que celle où elles sont déclarées et dans d'autres classes dérivées de la classe contenante. Cela signifie que si vous avez une classe de base avec un membre protégé, ce membre est accessible à toute classe qui hérite de cette classe de base. Cependant, elle reste inaccessible à toute autre classe qui ne fait pas partie de cette chaîne d'héritage.

Par exemple, considérons une classe Véhicule avec une méthode protégée Démarrer le moteur(). Cette méthode peut être appelée depuis n'importe quelle classe qui étendVehicle, comme une classeCarouTruck`, ce qui permet à ces classes dérivées d'utiliser une logique commune tout en maintenant l'encapsulation.

Exemple de protection en action

public class Vehicle
{
    protected void StartEngine()
    {
        // Engine start logic
    }
}
public class Car : Vehicle
{
    public void Drive()
    {
        StartEngine(); // Accessing the protected method
        // Additional driving logic
    }
}
public class Vehicle
{
    protected void StartEngine()
    {
        // Engine start logic
    }
}
public class Car : Vehicle
{
    public void Drive()
    {
        StartEngine(); // Accessing the protected method
        // Additional driving logic
    }
}
Public Class Vehicle
	Protected Sub StartEngine()
		' Engine start logic
	End Sub
End Class
Public Class Car
	Inherits Vehicle

	Public Sub Drive()
		StartEngine() ' Accessing the protected method
		' Additional driving logic
	End Sub
End Class
VB   C#

Dans cet exemple, la classe Car, qui est dérivée de la classe mère Vehicle, peut accéder à la méthode StartEngine, alors que les autres classes qui n'héritent pas de Vehicle ne peuvent pas accéder à cette méthode. Cela montre comment le modificateur "protected" permet d'organiser et de sauvegarder les fonctionnalités de la classe de manière hiérarchique.

Protégé Interne et privé Protégé

Comprendre l'interne protégé en C#35 ;

Le modificateur d'accès protected internal en C# est une combinaison de protected et internal. Cela signifie qu'un membre de classe marqué comme "interne protégé" est accessible à partir de n'importe quelle classe du même assemblage, y compris les classes dérivées, et à partir de classes dérivées dans d'autres assemblages. Il offre un accès plus large que le modificateur protected, puisqu'il n'est pas limité à la classe contenante et à ses types dérivés.

Cas d'utilisation de la protection interne

Protected internal est particulièrement utile lorsque vous souhaitez exposer certains membres de la classe à d'autres classes dans le même assemblage, tout en autorisant l'accès à ces membres dans des classes dérivées situées dans des assemblages différents. Ce modificateur est souvent utilisé dans les grands projets et les bibliothèques où vous avez besoin d'un contrôle plus fin de l'accessibilité des membres dans les différentes parties de l'application.

Privé Protégé : Accès restreint à l'intérieur de l'Assemblée

En revanche, le modificateur private protected est plus restrictif. Un membre private protected n'est accessible qu'à l'intérieur de la classe qui le contient ou dans une classe dérivée située dans le même assemblage. C'est une combinaison de private et protected et est utilisé pour restreindre l'accès au membre strictement à l'intérieur du même assemblage.

Exemple pratique : Protégé interne vs privé protégé

public class BaseClass
{
    protected internal string ProtectedInternalMethod()
    {
        // Method logic
    }
    private protected string PrivateProtectedMethod()
    {
        // Method logic
    }
}
public class DerivedClass : BaseClass
{
    void AccessMethods()
    {
        ProtectedInternalMethod(); // Accessible
        PrivateProtectedMethod(); // Accessible only if DerivedClass is in the same assembly
    }
}
public class BaseClass
{
    protected internal string ProtectedInternalMethod()
    {
        // Method logic
    }
    private protected string PrivateProtectedMethod()
    {
        // Method logic
    }
}
public class DerivedClass : BaseClass
{
    void AccessMethods()
    {
        ProtectedInternalMethod(); // Accessible
        PrivateProtectedMethod(); // Accessible only if DerivedClass is in the same assembly
    }
}
Public Class BaseClass
	Protected Friend Function ProtectedInternalMethod() As String
		' Method logic
	End Function
	Private Protected Function PrivateProtectedMethod() As String
		' Method logic
	End Function
End Class
Public Class DerivedClass
	Inherits BaseClass

	Private Sub AccessMethods()
		ProtectedInternalMethod() ' Accessible
		PrivateProtectedMethod() ' Accessible only if DerivedClass is in the same assembly
	End Sub
End Class
VB   C#

Dans cet exemple, DerivedClass peut accéder à la fois à ProtectedInternalMethod et à PrivateProtectedMethod. Cependant, si DerivedClass se trouvait dans un assemblage différent, elle ne pourrait pas accéder à PrivateProtectedMethod.

IronPDF : C&#35 ; Bibliothèque PDF

Protégé en C# (Comment ça marche pour les développeurs) : Figure 1 - Page web d'IronPDF for .NET

Introduction à IronPDF

Découvrez les fonctionnalités d'IronPDF est une bibliothèque populaire en C# utilisée pour créer, modifier et exporter des documents PDF. Il s'agit d'un outil puissant qui démontre l'application pratique des concepts C# tels que les classes, les objets et les modificateurs d'accès. Il est essentiel de comprendre comment fonctionnent les modificateurs d'accès tels que protected lorsque l'on travaille avec des bibliothèques complexes telles qu'IronPDF.

Le point fort d'IronPDF est sa capacité à convertirHTML vers PDF efficacement, tout en préservant les mises en page et les styles. Il est particulièrement utile pour générer des PDF à partir de contenu web comme des rapports, des factures et de la documentation. Les fichiers HTML, les URLs et les chaînes HTML peuvent tous être convertis en fichiers 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");
    }
}
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
VB   C#

Voici l'exemple de la création par IronPDF de l'élémentFichier PDF à partir d'une chaîne HTML:

using IronPdf;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create a PDF from an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>C# Generate PDF Document using IronPDF!</h1>");
// Export to a file or Stream
pdf.SaveAs("HtmlToPdf.pdf");
using IronPdf;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create a PDF from an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>C# Generate PDF Document using IronPDF!</h1>");
// Export to a file or Stream
pdf.SaveAs("HtmlToPdf.pdf");
Imports IronPdf
' Instantiate Renderer
Private renderer = New ChromePdfRenderer()
' Create a PDF from an HTML string using C#
Private pdf = renderer.RenderHtmlAsPdf("<h1>C# Generate PDF Document using IronPDF!</h1>")
' Export to a file or Stream
pdf.SaveAs("HtmlToPdf.pdf")
VB   C#

Voici le fichier PDF de sortie :

Protégé C# (Comment ça marche pour les développeurs) : Figure 2 - Sortie du PDF à partir du code ci-dessus

Le rôle des protégés dans l'IronPDF

Dans les bibliothèques comme IronPDF, le modificateur d'accès protégé joue un rôle important dans la structuration du code. Elle permet aux développeurs d'IronPDF de contrôler la manière dont les autres développeurs interagissent avec la bibliothèque. Par exemple, ils peuvent utiliser des méthodes ou des propriétés protégées dans une classe de base pour permettre l'extension et la personnalisation des classes dérivées sans exposer la logique interne à l'API publique.

Conclusion

Dans ce tutoriel, nous avons exploré les subtilités du modificateur d'accès protégé en C#, un aspect fondamental de la programmation orientée objet. Nous avons commencé par comprendre les bases des modificateurs d'accès et leur rôle dans la définition de la portée et de l'accessibilité des membres de la classe. Nous avons approfondi les spécificités de protégé, protégé interne et protégé privé, chacun servant des objectifs uniques dans le domaine du contrôle d'accès des membres de la classe.

IronPDF offre un service deessai gratuit d'IronPDF pour que les développeurs puissent explorer ses capacités, ce qui facilite l'expérimentation et permet de voir ses avantages en action. Pour une utilisation continue et un accès à toutes les fonctionnalités,vérifier les options de licence d'IronPDFla traduction doit également porter sur l'utilisation d'un logiciel de manipulation de PDF en C#, qui constitue une solution complète pour vos besoins en la matière.

< PRÉCÉDENT
Déclaration de cas C# (Comment cela fonctionne pour les développeurs)
SUIVANT >
.NET Aspire (Comment ça marche pour les développeurs)