C#抽象类命名约定

bin*_*ard 41 .net c# naming-conventions

在C#中,接口命名约定是I<myInterfaceName>(ex :) IList.

是否有抽象类的命名约定?

如果没有,主要建议是什么?

bpo*_*iss 21

通常,在命名抽象类时没有使用后缀/前缀,就像接口这样的东西(即"I"前缀).只需给你的班级一个名称,用一种简短的方式描述它是什么.

  • @JYelton我认为这只是一个语法错误,他的意思是"抽象类没有后缀,不像具有I前缀约定的接口" (8认同)
  • 我总是看到Interfaces带有"I"**前缀**,例如`IEnumerable`或`ITaxable`. (6认同)

jas*_*son 13

是否有抽象类的命名约定?

不,这里没有约定.有一些表示抽象基类的常用方法.我见过的最常见的是使用后缀Base.就个人而言,我不喜欢这个惯例,框架指南建议不要这样做.

如果没有什么是主电源推荐?

一个很好的通用名称,描述类正在建模的内容,就像任何其他类名一样.因此,Shape然后PolygonRegularPolygon等.

  • 框架指南在哪里反对它?您链接到框架架构师之一的博客,而不是框架指南:http://msdn.microsoft.com/en-us/library/ms229042(v=vs.110).aspx(似乎没有以任何一种方式陈述任何事情)。 (18认同)
  • Downvoted,因为我同意@Pharap. (9认同)
  • 该约定明确规定,如果它是公共 API,则不应使用“Base”。因此,如果抽象类的预期用途是在库本身的内部,那么使用“Base”命名抽象类是可以的。 (3认同)