Quelle est la meilleure pratique? manipuler les propriétés avec des accesseurs par @property
ou self.property
?@property ou self.property pour définir une propriété avec un accesseur?
6
A
Répondre
1
Si vous utilisez juste accesseurs droite, puis coller à @property
(à moins que vous venez de Python et sont rebutés par la @
Sigil hehe) autrement:
Il est tout à fait à vous. Mais self.property
peut être utile dans certains cas où vous avez besoin pour assurer la propriété est d'abord mis en place:
def property
@property ||= []
end
# don't need to check if @property is `nil` first
self.property << "hello"
Aussi méfiez-vous qu'il ya une légère surcharge à l'utilisation self.property
sur @property
comme self.property
est un appel de méthode.
NOTE: La raison pour laquelle j'utilise self.property
plus juste property
est parce que la méthode setter correspondant property=
nécessite un récepteur explicite: self.property=
, donc je choisis d'utiliser le récepteur explicite avec les deux.
Questions connexes
- 1. Est-il possible d'utiliser l'attribut Obsolète uniquement sur un accesseur ou un accesseur de propriété
- 2. Création d'un délégué ouvert performant pour un accesseur de propriété ou un getter
- 3. Puis-je créer des propriétés avec un accesseur public et un accesseur privé?
- 4. .NET - Quand devrais-je utiliser une propriété ou une fonction variable + accesseur?
- 5. « Lecture seule » propriété accesseur en C#
- 6. Pourquoi mon programme plante-t-il lors de l'accès à une propriété avec soi-même? et un accesseur synthétisé?
- 7. NHibernate Property-ref propriété liée paresseux charges
- 8. Synthétiser un accesseur pour un membre d'une structure
- 9. accesseur personnalisé pour un élément de tableau
- 10. Perl Moose accessor Moose - ne peut pas définir uniquement un lecteur ou lecteur accesseur!
- 11. Puis-je définir une propriété pour un tableau?
- 12. Ibatis: Définir un getter comme une propriété sur un résultat
- 13. Jeu privé ou protégé pour une propriété MustOverride
- 14. Est-il possible d'ajouter un accesseur à une propriété dans .NET en le remplaçant?
- 15. Comment définir une propriété dans Wix
- 16. Une question relative à @property
- 17. Comment définir une propriété python dans __init__
- 18. Pourquoi ne puis-je pas ajouter un accesseur défini à une propriété redéfinie?
- 19. Python: @staticmethod avec @property
- 20. propriété ou méthode par DISPID
- 21. Comment définir une propriété readonly?
- 22. navigateToURL ... set modal property
- 23. Comment utiliser Reflection pour définir une propriété avec un type de liste <CustomClass>
- 24. Comment définir une propriété de non-dépendance à partir du viewmodel pour un contrôle dynamique
- 25. Définir une propriété dans WiX basé sur une condition
- 26. Définir la propriété pour simuler l'objet jmock
- 27. Y a-t-il une différence entre définir une propriété avec le point ou la syntaxe de parenthèse?
- 28. Est-il nécessaire de définir une propriété pour un champ IBOutlet?
- 29. C# Property System
- 30. C# Shorthand Property Question
C'est une bonne question, et quelque chose que je me suis demandé. La plupart du code que je vois utilise la @class_variable directement, mais je me suis souvent demandé s'il ne vaudrait pas mieux utiliser les accesseurs comme le ferait le code client, juste du point de vue du style/de la lisibilité. –