【发布时间】:2010-09-30 13:51:45
【问题描述】:
我清楚地记得,有一次,微软推动的指导方针是将“Base”后缀添加到抽象类中,以消除它是抽象的事实。因此,我们有System.Web.Hosting.VirtualFileBase、System.Configuration.ConfigurationValidatorBase、System.Windows.Forms.ButtonBase 等类,当然还有System.Collections.CollectionBase。
但我注意到,最近,框架中的许多抽象类似乎并没有遵循这个约定。例如,以下类都是抽象的,但不遵循这个约定:
-
System.DirectoryServices.ActiveDirectory.DirectoryServer -
System.Configuration.ConfigurationElement -
System.Drawing.Brush -
System.Windows.Forms.CommonDialog
这就是我可以在几秒钟内鼓起的。所以我去查了官方文档是怎么说的,以确保我没有疯。我在 MSDN 上的 Design Guidelines for Developing Class Libraries 上找到了 Names of Classes, Structs, and Interfaces。奇怪的是,我找不到将“Base”添加到抽象类名称末尾的指南。并且该指南不再适用于 1.1 版框架。
那么,我会失去它吗?这个指南曾经存在吗?是不是一句话就被抛弃了?在过去的两年里,我是否一直在自己创建长类名?
有人在这里扔我一根骨头。
更新 我没疯。该指南存在。 Krzysztof Cwalina gripes about it in 2005.
【问题讨论】:
-
如果您阅读了那篇文章,Krzysztof 只是抱怨收到“一组建议”——不一定这些建议是 Microsoft 官方的。我记得阅读了 MS 指南并看到他们建议不要这样做。
-
我确实读过它,虽然这是我记得第一次看到那篇特别的文章。事实上,这是一种解脱。我从来没有真正喜欢过这个建议。从现在开始,它会为我节省很多咆哮。 :)
标签: .net naming-conventions abstract-class