J'essaie de définir les propriétés de classe qui ne peuvent être définies que par le constructeur de la même classe.Définir les propriétés d'une classe uniquement via le constructeur
Répondre
Faire les propriétés ont readonly champs sauvegarde:
public class Thing
{
private readonly string _value;
public Thing(string value)
{
_value = value;
}
public string Value { get { return _value; } }
}
Hey David merci pour une réponse rapide, vous pensez que cela fait que les propriétés de la classe seulement définies par le constructeur –
Oui, c'est le cas. Si vous utilisez C#, veuillez mettre à jour vos tags sur votre message d'origine pour être plus clair. Cette réponse suppose que vous utilisez C#. Si ce n'est pas le cas, veuillez ajouter une étiquette avec le langage de programmation que vous utilisez, afin que les gens puissent comprendre la question plus clairement. –
This page from Microsoft décrit comment réaliser définir une propriété seulement du constructeur.
Vous pouvez créer une propriété immuable de deux manières. Vous pouvez déclarer le set accessor.pour être privé. La propriété est seulement réglable dans le type , mais elle est immuable pour les consommateurs. Vous pouvez à la place déclarer seulement l'accesseur get, ce qui rend la propriété immutable partout sauf dans le constructeur du type.
En C# 6.0 inclus avec Visual Studio 2015, il y a eu une modification qui permet de définir des propriétés get only à partir du constructeur. Et seulement du constructeur.
Le code pourrait donc être simplifié à juste obtenir que la propriété:
public class Thing
{
public Thing(string value)
{
Value = value;
}
public string Value { get; }
}
La manière correcte est:
public string MyProperty{ get; private set; }
public MyClassConstructor(string myProperty)
{
MyProperty= myProperty;
}
MyProperty peut être modifié par n'importe quelle méthode de la même classe. – mayu
Au C# 6.0, vous pouvez désormais obtenir uniquement les propriétés qui peuvent être dans le constructeur (même s'il n'y a pas d'ensemble défini dans la propriété elle-même Voir Property with private setter versus get-only-property
- 1. Printemps Appelle le constructeur d'objet avant de définir les propriétés
- 2. Comment définir correctement les propriétés de classe?
- 3. Impossible de définir les propriétés de classe
- 4. Propriétés de la classe et de ses sous-classes uniquement
- 5. Comment définir les propriétés
- 6. Comment rendre un constructeur disponible uniquement pour la classe d'usine?
- 7. obtenir et définir les propriétés
- 8. Définir les propriétés du texte
- 9. Comment définir les propriétés CheckBoxList?
- 10. Obtenir le constructeur de classe
- 11. Les interfaces doivent-elles définir des propriétés?
- 12. Classe scellée - Pourquoi supprimer le constructeur public?
- 13. .NET: Définir la sécurité Active Directory via Web.config uniquement
- 14. Comment définir le constructeur d'un bean session EJB3
- 15. Obtenir uniquement les propriétés d'une instance
- 16. Comment définir les propriétés dans __init__
- 17. C# Héritage: Comment appeler le constructeur de la classe de base quand j'appelle le constructeur de la classe dérivée
- 18. propriétés prototype et objet constructeur
- 19. Comment définir et implémenter les propriétés dans le protocole
- 20. Appel du constructeur de classe enfant avant le constructeur parent
- 21. Passage d'objets IDisposable via des chaînes constructeur
- 22. Enregistrer les propriétés de message uniquement localement (Outlook)
- 23. Sélectionner uniquement les images à télécharger via le bouton Parcourir
- 24. Comment: définir le sort dans Vim uniquement pour les emails?
- 25. Accès aux propriétés héritées via une classe statique
- 26. Constructeur pour la classe
- 27. Classe Functor travaillant dans le constructeur
- 28. Définir les propriétés des polices dans RichTextBox
- 29. Définir l'environnement vcbuild via msbuild
- 30. constructeur de classe
Salut, la question est un peu vague, vous n'avez pas mentionné quel langage de programmation vous êtes roi à propos et les étiquettes choisies sont pauvres. Pouvez-vous s'il vous plaît éditer et clarifier/élaborer plus? – BalusC
Quelle langue? Avez-vous essayé Google? C'est une partie assez basique de n'importe quelle langue. – noah