
C# Getter Setter (Comment ça fonctionne pour les développeurs)
Les getters et setters sont des concepts essentiels dans les langages de programmation orientés objet comme C#. Ces deux méthodes nous permettent de contrôler l'accès et la modification des propriétés de la classe. Dans ce tutoriel, nous explorerons à la fois les aspects débutant et intermédiaire des getters et setters privés en C# en utilisant des blocs de code.
Introduction aux Getters et Setters
Que sont les Getters et Setters ?
À la base, les getters et setters ne sont rien d'autre que des méthodes permettant d'accéder à des variables privées dans une classe. Le getter retourne la valeur d'une variable de champ privé, tandis que le setter la modifie. Ces méthodes garantissent que les données internes (champs) d'une classe sont accédées ou modifiées de manière sécurisée et correcte.
Pourquoi en avons-nous besoin ?
Imaginez avoir un public class Car avec une propriété private string description. Si quelqu'un en dehors de cette classe veut connaître la description, il ne peut pas y accéder directement car elle est privée. C'est là qu'interviennent les getters et setters.
Un getter permettrait aux utilisateurs de récupérer la valeur d'un private string description sans leur donner un accès direct pour la modifier. D'autre part, un setter permettrait aux utilisateurs de modifier la description selon les conditions que nous avons définies.
Modificateurs d'Accès
Les modificateurs d'accès définissent le niveau de visibilité et d'accessibilité d'un champ ou d'une propriété depuis l'extérieur de la classe. Les modificateurs les plus couramment utilisés sont public et private.
Public: Les champs ou propriétés déclaréspublicpeuvent être accessibles depuis n'importe où dans votre programme. Par exemple, vous pourriez avoir une propriétépublic int Agequi peut être accessible et modifiée par n'importe quelle partie de votre code.Private: Les propriétés ou champs déclarésprivatene peuvent être accessibles qu'au sein de la classe définie, par exempleprivate int age. Cette encapsulation aide à prévenir les modifications non autorisées et garantit que l'état interne de la classe est bien maintenu.
Getter et Setter Simples
Commençons par un exemple simple.
using System;
public class Person
{
private string name; // This is a private string name property variable
// This is the getter
public string GetName()
{
return name;
}
// This is the setter
public void SetName(string newName)
{
name = newName;
}
}
class Program
{
static void Main()
{
Person person = new Person();
person.SetName("John");
Console.WriteLine(person.GetName());
}
}Imports System
Public Class Person
Private name As String ' This is a private string name property variable
' This is the getter
Public Function GetName() As String
Return name
End Function
' This is the setter
Public Sub SetName(ByVal newName As String)
name = newName
End Sub
End Class
Module Program
Sub Main()
Dim person As New Person()
person.SetName("John")
Console.WriteLine(person.GetName())
End Sub
End ModuleDans le class Person ci-dessus, nous avons à la fois un getter (GetName) et un setter (SetName) pour la propriété name. Lorsque vous exécutez la méthode static void Main, elle imprimera "John" car nous avons défini cette valeur pour le nom à l'aide du setter.
Propriétés Auto-Implémentées
Maintenant, vous pourriez vous demander, "Dois-je toujours écrire des méthodes distinctes pour les getters et setters ?" La réponse est "non." C# a introduit un concept appelé "propriétés auto-implémentées" ou "propriétés automatiques" pour simplifier cela.
En C#, vous pouvez utiliser des propriétés automatiques, ce qui vous donne un raccourci pour déclarer un private field et sa propriété associée. Voici un exemple :
using System;
public class Student
{
public string Name { get; set; } // This is an auto-implemented or automatic property
public string Title { get; set; } // Another auto-implemented property
}
class Program
{
static void Main()
{
Student student = new Student();
student.Name = "Alice"; // Using setter
Console.WriteLine(student.Name); // Using getter
}
}Imports System
Public Class Student
Public Property Name() As String ' - This is an auto-implemented or automatic property
Public Property Title() As String ' - Another auto-implemented property
End Class
Friend Class Program
Shared Sub Main()
Dim student As New Student()
student.Name = "Alice" ' Using setter
Console.WriteLine(student.Name) ' Using getter
End Sub
End ClassDans la classe Student, la propriété Name est à la fois un getter et un setter, qui sont auto-implémentés. Le compilateur C# crée un champ private string name en coulisse, et la propriété Name fournit un accès à ce champ.
Modificateurs d'Accès Avancés dans les Propriétés
Propriétés en Lecture Seule
Parfois, vous pourriez vouloir fournir une propriété qui peut être lue mais pas modifiée de manière externe. C'est là que les propriétés en lecture seule sont utiles. Vous pouvez omettre le setter dans une propriété pour la rendre en lecture seule.
Disons que nous voulons ajouter une propriété string Description en lecture seule à notre classe Person :
public class Person
{
public string Name { get; set; }
public string Description { get; }
public Person(string name, string description)
{
Name = name;
Description = description;
}
}Public Class Person
Public Property Name As String
Public ReadOnly Property Description As String
Public Sub New(name As String, description As String)
Me.Name = name
Me.Description = description
End Sub
End ClassDans cet exemple, la propriété Description ne peut être définie qu'au sein du constructeur de la classe Person. Une fois fixée, elle ne peut pas être modifiée de manière externe.
Setters Privés
Parfois, vous pourriez vouloir autoriser la propriété à être lue depuis l'extérieur de la classe mais seulement définie de l'intérieur de la classe. Cela est réalisé en utilisant un private set.
using System;
public class Program
{
public string Description { get; private set; }
public Program()
{
Description = "This is a program about getters and setters.";
}
}
class ProgramTest
{
static void Main()
{
Program myProgram = new Program();
Console.WriteLine(myProgram.Description); // Allowed
// myProgram.Description = "New Description"; // Not allowed
}
}Imports System
Public Class Program
Private privateDescription As String
Public Property Description() As String
Get
Return privateDescription
End Get
Private Set(ByVal value As String)
privateDescription = value
End Set
End Property
Public Sub New()
Description = "This is a program about getters and setters."
End Sub
End Class
Friend Class ProgramTest
Shared Sub Main()
Dim myProgram As New Program()
Console.WriteLine(myProgram.Description) ' Allowed
' myProgram.Description = "New Description"; // Not allowed
End Sub
End ClassDans le class Program, la propriété Description a un private set, ce qui signifie qu'elle ne peut pas être modifiée de l'extérieur de la classe, assurant ainsi l'intégrité des données.
Héritage et Surdéfinition
Lorsqu'on travaille avec des classes dérivées, vous pouvez remplacer les méthodes getter et setter pour personnaliser leur comportement. Cela vous permet d'ajouter une logique supplémentaire pendant la récupération ou la définition des valeurs.
public class Person
{
public virtual string Name { get; set; }
}
public class Student : Person
{
private string studentID;
public override string Name
{
get { return base.Name; }
set
{
if (!string.IsNullOrEmpty(value))
base.Name = value;
}
}
}Public Class Person
Public Overridable Property Name() As String
End Class
Public Class Student
Inherits Person
Private studentID As String
Public Overrides Property Name() As String
Get
Return MyBase.Name
End Get
Set(ByVal value As String)
If Not String.IsNullOrEmpty(value) Then
MyBase.Name = value
End If
End Set
End Property
End ClassDans cet exemple, la classe Student hérite de Person et surcharge le setter de la propriété Name. Elle ajoute une vérification de validation avant de définir le nom, s'assurant qu'il n'est ni vide ni nul.
Présentation d'Iron Suite pour améliorer votre développement en C#
Iron Suite est un ensemble d'outils de recherche qui boostent considérablement les capacités de développement C#. Il inclut IronPDF, IronXL, IronOCR, et IronBarcode. Chacun de ces outils a une utilité unique et peut être intégré dans divers aspects de C#.
IronPDF - Un Outil Puissant de Gestion PDF
[En savoir plus sur IronPDF]($title=Apprendre%20%C3%A0%20prendre%20en%20main%20 IronPDF&href=/tutorials/html-to-pdf/), qui est une bibliothèque permettant aux développeurs de créer, lire et éditer des documents PDF en C#. Que ce soit pour convertir du HTML en PDF ou gérer les métadonnées PDF via des getters et setters, IronPDF est là pour vous.
IronPDF excelle dans la conversion HTML en PDF, garantissant une préservation précise des mises en page et styles originaux. Il 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 le support des fichiers HTML, des URLs 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");
}
}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 ClassIronXL - Manipulation d'Excel Facile
Lorsque vous travaillez avec des fichiers Excel, la bibliothèque IronXL Excel simplifie le processus de lecture et d'écriture. Cet outil peut être utilisé pour manipuler les chaînes ou entiers privés et publics des fichiers Excel, de la même manière que vous pourriez gérer les données au sein d'une classe en utilisant la même syntaxe pour les getters et setters en C#.
IronOCR - Optical Character Recognition in C#
Explorez IronOCR, une bibliothèque de Reconnaissance Optique de Caractères qui traduit les images en texte consultable. Si votre application implique la lecture de texte à partir de documents numérisés, les capacités puissantes de IronOCR peuvent être facilement intégrées. Il peut gérer les champs privés et les descriptions de chaînes publiques, tout comme vous vous y attendriez dans une classe Person ou une classe Student de l'exemple précédent.
IronBarcode - Bibliothèque de Lecture et Écriture de Codes-Barres
Découvrez les fonctionnalités d'IronBarcode pour les applications nécessitant la lecture et l'écriture de codes-barres. Il permet à la fois un accès direct aux données de codes-barres et une personnalisation via des propriétés automatiques, tout comme les getters et setters utilisés dans la programmation C#.
Iron Suite et Getters et Setters
Le package Iron Suite s'intègre parfaitement au développement C#, y compris les getters et setters. Ces outils ajoutent de la valeur à tout projet C#.
Conclusion
Pour résumer :
Getter and Setter: Ils aident à accéder et à modifier les champs privés d'une classe.Auto Properties: Une façon élégante d'avoir des getters et setters automatiques grâce aux propriétés auto-implémentées.Access Modifiers: Ils aident à affiner l'accessibilité des propriétés.
À présent, vous devriez avoir une bonne compréhension de comment utiliser les getters et setters en C#.
La suite d'outils d'Iron Suite offre une fonctionnalité incroyable pour les développeurs C#. Chacun de ces produits, y compris IronPDF, IronXL, IronOCR et IronBarcode, est livré avec une version d'essai gratuite des outils Iron Software, vous permettant d'explorer et d'intégrer ces bibliothèques puissantes dans vos projets sans aucun investissement initial.
Lorsque vous êtes prêt à vous engager, les licences individuelles commencent à partir de $999. Si vous constatez que plus d'un de ces outils répond à vos besoins, vous pouvez profiter de l'opportunité d'acheter l'ensemble du package Iron Suite pour le prix de seulement deux licences individuelles.

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.
Articles connexes


