C # Class 变数命名原则: 是 baseClass 还是 ClassBase 还是 abstractClass

命名基类的推荐方法是什么?它是以“ 基地”或“ 摘要”作为类型名的前缀,还是仅以“ Base”作为后缀?

考虑以下几点:

类型: ViewModel例如 MainViewModelReportViewModel

基类: BaseViewModelViewModelBaseAbstractViewModel

还要考虑:

类型: Product例如 虚拟产品过期产品

基类: BaseProductProductBaseAbstractProduct

你觉得哪个更标准?

class Entity : EntityBase
{
}

或者

class Entity : BaseEntity
{
}
55970 次浏览

都不是。考虑基类提供的用途; 将其命名为。例如,Automobile 和 Bicycle 的基类可以是 Vehicle。

如果您创建基类只是为了拥有一个类的基类,并且除此之外没有其他目的或原因,那么您可能做错了什么。

我们使用 BaseEntity,但我认为这是您自己的偏好。

只要在您的上下文中保持一致,无论是您的项目、名称空间还是您的团队。恕我直言,不同的惯例比糟糕的惯例更糟糕。

就个人而言,我建议根本不要添加单词基。您永远不会知道什么时候需要改变代码,而且它将不再是基对象。话虽如此,我们以前也这样做过,我们在前面加了单词 Base 的前缀。看起来流畅多了。

框架中有一些带有 Base 后缀的例子,例如 System.Configuration.Provider.ProviderBaseSystem.Web.SessionState.SessionStateStoreProviderBase

但是框架中的所有抽象基类并不都遵循这个约定(例如 System.Data.Common.DbParameterSystem.Data.Common.DbCommand)。

就个人而言,我会避免使用后缀 除非,我想强调的是,它是一个抽象类,并认为否则该类的用户可能希望该名称指示一个具体的实现。

BaseEntity 看起来很像驼峰大小写-strName,bseEntity。我选择 EntityBase,因为它首先定义主题,这将帮助您更快地识别它的函数。

如果您谈论的是虚拟基类,那么 Microsoft 的标准是 ClassnameBase (与 CollectionBase 类似)

给东西起名字的时候,一定要考虑按字母顺序排列。我真的不喜欢查看 SQL 服务器,并且每个存储过程都被命名为 usp [ something ]。同样,不要过度使用 Get 和 Set 作为函数的前导名称。考虑将它们命名为 ItemsGet 或 OrderPlace,而不是 GetItems 或 PlaceOrder。

因此,一般来说,ClassnameBase/EntityBase 是一个更好的选择。

我认为这是一个选择的问题。我想说的是,如果你创建了很多基类,那么最好使用 BaseClassname,因为这样你就可以通过输入 Base 并从 Intellisense 获得其余的帮助来找到你可以开始使用的基类。如果您有20个 Base 类,并且将 Base 作为后缀添加,而忘记了基类的名称是什么?您是否希望首先从 VS 创建一个类图,并找出哪些基类是可用的? 当它只是一个或两个类的时候,可以把它们命名为 ClassBase。

GetItems 和 ItemsGet 函数之间的 decision 也是如此。我想说,至少为了可读性——去 GetItems 吧。遵循惯例:)