Je vois ce calme souvent dans la documentation C #. Mais qu'est-ce que ça fait?
public class Car
{
public Name { get; set; }
}
C'est un raccourci pour:
private string _name;
public string Name
{
get { return _name; }
set { _name = value; }
}
Le compilateur génère la variable membre. Cela s'appelle un propriété automatique .
En termes simples, ils sont appelés accesseurs de propriété. Leur mise en œuvre peut être expliquée comme ci-dessous
1.get {return name} Le bloc de code dans l'accesseur get est exécuté lorsque la propriété est Read.
2.set {name = value} Le bloc de code dans l'accesseur set est exécuté lorsque la propriété est Assigned une nouvelle valeur.
Par exemple (en supposant que vous utilisez C #)
class Person
{
private string name; // the name field
public string Name // the Name property
{
get
{
return name;
}
set
{
name = value;
}
}
}
Maintenant, lorsque vous vous référez à cette propriété comme ci-dessous
Person p = new Person (); // Instanciation de la classe ou création de l'objet 'p' de la classe 'Person'
System.Console.Write(p.Name); //The get accessor is invoked here
L'accesseur get est invoqué pour Lire la valeur de la propriété, c'est-à-dire que le compilateur essaie de lire la valeur de la chaîne 'nom'.
2.Lorsque vous Assignez une valeur (en utilisant un argument) à la propriété 'Nom' comme ci-dessous
Person p = new Person();
p.Name = "Stack" // the set accessor is invoked here
Console.Writeline(p.Name) //invokes the get accessor
Console.ReadKey(); //Holds the output until a key is pressed
L'accesseur défini Assigne la valeur 'Empiler' à la 'Propriété de nom c'est-à-dire' Empiler 'est stockée dans la chaîne' nom '.
Sortie:
Empiler
C'est une propriété de lecture-écriture automatique. C'est un ajout C # 3.0. Quelque chose comme:
public class Car {
private string name;
public string Name { get { return name; } set { name = value; } }
}
sauf que vous ne pouvez pas accéder directement au champ de support.
Cela s'appelle une propriété implémentée automatiquement et est nouveau dans C # 3. . C'est une syntaxe plus propre lorsque votre accès à la propriété n'a pas besoin de comportement ou de validation particulier. Sa fonction est similaire à:
public class Car
{
private string _name;
public string Name
{
get { return _name; }
set {_name = value; }
}
}
Ainsi, il enregistre une bonne quantité de code, mais vous laisse la possibilité de modifier la logique d'accesseur plus tard si le comportement ou les règles doivent changer.
C'est l'équivalent de faire:
private string _Text;
public string Text
{
get { return _Text; }
set { _Text = value; }
}
Sauf que vous n'avez pas accès à la variable privée à l'intérieur de la classe.
Propriétés implémentées automatiquement
Résumé: dans C # 3.0 et versions ultérieures, 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é.