Fonctions intégrées et combo
Par amethyste le Jun 2, 2007 | Dans focus | Réagir »
Bon, me revoilà avec deux petites infos qui ne vont pas bouleverser le monde, mais que je trouve intéressantes.
Tout d'abord, je me suis longtemps demandé comment faisait le compilateur pour décider si une méthode serait inline ou non. J'ai trouvé la réponse dans le blog de Madhawa[1], un Sri Lankais fort intéressant.
• Les méthodes de plus de 32 octets de code IL ne sont pas intégrées
• Les méthodes virtuelles ne sont pas intégrées (on s'en doutait). Toutefois si elle est sealed, elle devient un candidat possible (je vous l'ai dit, préférez les classes sealed[2]).
• Les méthodes avec un contrôle de flux complexe ne sont pas intégrées (c'est à dire tout sauf if/then/else, par exemple switch ou while).
• Les méthodes avec un block catch ne sont pas intégrées, mais la méthode qui lève l'exception peut l'être
• Si un des arguments de la méthode est une structure, pas d'intégration non plus.
Intuitivement jai toujours trouvé préférable de remplir les propriétés d'une Combo dans l'ordre suivant:
MaCombo.DisplayMember
MaCombo.ValueMember
MaCombo.DataSource
plutôt que:
MaCombo.DataSource
MaCombo.DisplayMember
MaCombo.ValueMember
J'ai découvert (toujours dans le même blog) un article de Scott Mc Caster[3] qui explique pourquoi mon intuition est pour une fois correcte. La raison est essentiellement due à de meilleures performances du code car dans le premier cas l'événement SelectedIndexChanged est appelé 3 fois, contre une fois seulement dans le premier cas.
Tant que l'on parle des Combo, sachez aussi que si vous le renseignez autrement qu'en alimentant sa propriété DataSource, alors SelectedValue et SelectedText ne sont pas actifs. J'ai appris cela à la dure il y a quelques jours...
Bibliographie
[1] Blog de Madhawa
http://madhawa.blogspot.com
[2] J'aime les classes sealed
http://www.dotnetguru2.org/amethyste/index.php?p=451&more=1&c=1&tb=1&pb=1
[3] Article de ScottMc Caster
http://www.codeproject.com/csharp/ScoMListControlBinding.asp
Aucun commentaire pour le moment
Laisser un commentaire
| « Impossible de se connecter à une base locale | VS 2005, contrôle personnalisé et Toolbox » |