相关疑难解决方法(0)

C#类命名约定:是BaseClass还是ClassBase或AbstractClass

命名基类的推荐方法是什么?它是否在类型名称前加上" Base "或" Abstract ",或者我们只是用"Base"作为后缀?

考虑以下:

type:ViewModel例如MainViewModel,ReportViewModel

基类:BaseViewModelViewModelBaseAbstractViewModel

还要考虑:

type:Product例如VirtualProduct,ExpiringProduct

基类:BaseProductProductBaseAbstractProduct

您认为哪个更标准?

class Entity : EntityBase
{
}
Run Code Online (Sandbox Code Playgroud)

要么

class Entity : BaseEntity
{
}
Run Code Online (Sandbox Code Playgroud)

c# naming-conventions base-class

107
推荐指数
3
解决办法
4万
查看次数

抽象类的命名约定

我清楚地记得,有一次,微软推动的指导原则是将"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上的类,结构和接口名称.奇怪的是,我没有提到在抽象类名称的末尾添加"Base"的指南.该框架的1.1版已不再适用该指南.

那么,我输了吗?该指南是否存在?是不是一言不发就被遗弃了?在过去的两年里,我一直在为自己创造长篇名字吗?

有人在这里给我一个骨头.

更新 我不是疯了.该指南已存在.Krzysztof Cwalina在2005年抱怨它.

.net abstract-class naming-conventions

99
推荐指数
4
解决办法
3万
查看次数

在类名中使用"Base"

在作为继承树底部的类名中使用"Base"这个词是否可以接受?

我总是发现这有点像一个警察,只是想知道是否有人同意我.

例如,如果我将MyClassA和MyClassB中的某些元素重构为公共基类,我很想创建一个MyBaseClass,两者继承.

但是如果我需要重构MyBaseClass会发生什么?MyBaseBaseClass?现在那真是太傻了.

我知道Rocky Lhotka不介意他的CSLA框架,但我总是对编程中的'definites'感到不安.

思考?

让我澄清为什么我甚至担心这一点.

我有两个名称空间 - MySpecificNamespace和MyCommonNamespace.正如您所料,MyNamespace使用MyCommonNamespace.

现在,我希望尽可能最大限度地使用命名空间来描述问题的上下文,并避免将上下文添加到类名中.因此,例如,考虑我在MyNamespace中有一个类,它来自MyCommonNamespace中的一个类.

选项A.

可以称之为

MySpecificClass: MyClass
{
}
Run Code Online (Sandbox Code Playgroud)

但后来我在名称中添加了"特定"(上下文) - 这是多余的,因为它已经在MySpecificNamespace中.

选项B.

MyClass: MyCommonNamespace.MyClass
{
}
Run Code Online (Sandbox Code Playgroud)

你可以看到我们在这里如何混淆,对吧?

选项C.

我觉得这个很可疑:

MyClass: MyBaseClass
{
}
Run Code Online (Sandbox Code Playgroud)

oop inheritance coding-style

28
推荐指数
5
解决办法
9001
查看次数