当基本单词以I开头时,如何命名界面?

我想为“Items”创建一个界面。 Typicaly我会通过在基本单词中添加“I”前缀来命名接口。 但在这种情况下,我的基本单词已经以I开头。这里有几个想法

  • IItem :两个我
  • Iitem :改变这种情况
  • ItemInterface :跳过I前缀并写出Interface

什么看起来最好? 有没有其他人遇到这个问题。 如果是这样你做了什么?

虽然难以阅读,但IItem将与一些现有的“ II ”接口保持一致:

  • Windows Mobile 6.5中的IItem
  • IImplicitResourceProvider
  • IISAPIRuntime

简单的IItem 。 没有必要例外。

接口以两个大写字母(I [AZ])开头,将它们标识为接口。 所以Item不是一个接口,但是IItem是。

根据.Net命名约定,接口名称前面应加上大写字母’I’,后跟Camel case中的接口名称。

所以我建议你将接口Item命名为:

 IItem 

没有必要在最后提到“接口”,因为起始处的字母’I’表示它是接口,不需要明确提及。

编辑2016/08/12:我最初提供此答案作为命名约定的替代视角。 我的日常C#现在使用I -prefixing来保持惯用语并通过一致性减少认知负担。 我认为一致性比我在下面提出的问题更重要。 简而言之,坚持使用您正在使用的代码库的约定。


只是Item 。 不是因为接口以I开头,而是因为没有必要为带有识别字母的类添加前缀。 使用I装饰接口与在具体类名(la MFC)之前使用C一样难看。 任何东西的前缀类型都与使用匈牙利表示法一样糟糕。

你可以说它实际上给你了语义价值,但我不相信。 我有一个现代的IDE,我不需要我的类型名称更复杂。

您可以看到MS人员正在使用System.ComponentModel.IItemProperties