Accesseurs statiques et mutateurs
Je suis en train d'apprendre le C#, et suis en train d'apprendre au sujet de faire des champs privés de la classe, et à l'aide des Getters et Setters pour exposer des Méthodes à la place des valeurs de champ.
Sont les get; set;
dans Méthode 1 et Méthode 2 équivalent? par exemple, est un abrégé de l'autre?
class Student
{
//Instance fields
private string name;
private int mark;
//Method 1
public string Name { get; set; }
//Method 2
public int Mark
{
get { return mark; }
set { mark = value; }
}
}
Enfin, ne serait Méthode 2 être utilisés lorsque vous souhaitez par exemple effectuer un calcul avant d'obtenir ou de définir une valeur? par exemple, la conversion de la valeur en pourcentage ou validation? par exemple,
class Student
{
//Instance fields
private string name;
private double mark;
private int maxMark = 50;
//Method 1
public string Name { get; set; }
//Method 2
public double Mark
{
get { return mark; }
set { if ( mark <= maxMark ) mark = value / maxMark * 100; }
}
}
source d'informationauteur Gravy
Vous devez vous connecter pour publier un commentaire.
Oui, la Méthode 1 est un raccourci de la Méthode 2. Je suggère d'utiliser la Méthode 1 par défaut. Lorsque vous avez besoin de plus de fonctionnalités, utilisez la Méthode 2. Vous pouvez également spécifier différents modificateurs d'accès pour get et set.
Oui, le
Method2
est la voie à suivre lorsque vous avez un personnalisé getter et setter. Par défaut, lorsque vous utilisez Method1, il y aura un défaut de la propriété privée gérée en interne. Veuillez consulter cette URL pour plus de détails