Je me souviens distinctement qu'à un moment donné, la directive préconisée par Microsoft était d'ajouter le suffixe «Base» à une classe abstraite pour éviter le fait qu'elle était abstraite. Par conséquent, nous avons des classes comme System.Web.Hosting.VirtualFileBase
, System.Configuration.ConfigurationValidatorBase
, System.Windows.Forms.ButtonBase
et, bien sûr, System.Collections.CollectionBase
.
Mais j'ai remarqué que, dernièrement, beaucoup de classes abstraites du Framework ne semblent pas suivre cette convention. Par exemple, les classes suivantes sont toutes abstraites mais ne suivent pas cette convention:
System.DirectoryServices.ActiveDirectory.DirectoryServer
System.Configuration.ConfigurationElement
System.Drawing.Brush
System.Windows.Forms.CommonDialog
Et c'est exactement ce que je pourrais faire en quelques secondes. Je suis donc allé chercher ce que la documentation officielle avait à dire, pour m'assurer que je n'étais pas fou. J'ai trouvé les noms de classes, de structures et d'interfaces sur MSDN dans Design Guidelines for Developing Class Libraries . Curieusement, je ne trouve aucune mention de la directive d'ajouter "Base" à la fin du nom d'une classe abstraite. Et les directives ne sont plus disponibles pour la version 1.1 du Framework.
Alors, suis-je en train de le perdre? Cette directive a-t-elle jamais existé? Est-ce qu'il vient d'être abandonné sans un mot? Ai-je créé de longs noms de classes tout seul ces deux dernières années pour rien?
Quelqu'un m'a jeté un os ici.
Mise à jour, je ne suis pas fou. La ligne directrice existait. Krzysztof Cwalina s'en plaint en 2005.