Propriétés implémentées automatiquement (Guide de programmation C#)
Dans C# 3.0 et version ultérieure, les propriétés implémentées automatiquement rendent la déclaration de propriété plus concise lorsqu'aucune logique supplémentaire n'est requise dans les accesseurs de propriété. Elles permettent également au code client de créer des objets. Lorsque vous déclarez une propriété comme indiqué dans l'exemple suivant, le compilateur crée un champ de stockage privé et anonyme qui peut être accédé uniquement via les accesseurs get et set de la propriété.
Exemple
L'exemple suivant présente une classe simple qui comporte quelques propriétés implémentées automatiquement :
// This class is mutable. Its data can be modified from
// outside the class.
class Customer
{
// Auto-Impl Properties for trivial get and set
public double TotalPurchases { get; set; }
public string Name { get; set; }
public int CustomerID { get; set; }
// Constructor
public Customer(double purchases, string name, int ID)
{
TotalPurchases = purchases;
Name = name;
CustomerID = ID;
}
// Methods
public string GetContactInfo() {return "ContactInfo";}
public string GetTransactionHistory() {return "History";}
// .. Additional methods, events, etc.
}
class Program
{
static void Main()
{
// Intialize a new object.
Customer cust1 = new Customer ( 4987.63, "Northwind",90108 );
//Modify a property
cust1.TotalPurchases += 499.99;
}
}
La classe affichée dans l'exemple précédent est mutable. Le code client peut modifier les valeurs dans les objets après qu'ils ont été créés. Dans les classes complexes qui contiennent le comportement significatif (méthodes) aussi bien que les données, il est souvent nécessaire d'avoir des propriétés publiques. Toutefois, il est recommandé de rendre les objets immuables en déclarant private l'accesseur set dans le cas de petites classes ou structs qui encapsulent juste un jeu de valeurs (données) et qui ont peu ou aucun comportement. Pour plus d'informations, consultez Comment : implémenter une classe Lightweight avec des propriétés implémentées automatiquement (Guide de programmation C#).
Les attributs sont autorisés sur les propriétés implémentées automatiquement, mais évidemment pas sur les champs de stockage puisqu'ils ne sont pas accessibles à partir de votre code source. Si vous devez utiliser un attribut sur le champ de stockage d'une propriété, créez simplement une propriété normale.