命名约定:动词/名词和英语语法使用指南

发布于 2024-07-12 06:44:56 字数 454 浏览 5 评论 0原文

谁能给我指出一个网站,或者给我一些关于如何为接口、类甚至与该对象或方法的用途相关的方法和属性选择名称的智慧?

这是专门针对 Microsoft 开发的,因此并未真正使用 Java 风格的“doGet”等,但是必须(我认为)存在一些跨越语言障碍的通用规则。

一个例子可能会有所帮助:我有 4 个接口名称可供选择:

IGroupedItem
IGroupableItem
IDataEntity
IGroupedEntity

它们都包含一个形容词和名词,或者只包含一个名词。 看看 .NET 框架,似乎必须有某种规则集,以保持一致性? 除了明显的方法动词之外。

编辑:虽然示例是一个接口,但我并不将其仅限于接口。 一般准则是类是名词,方法是动词,属性是名词。 我想我的意思是同义词的选择。 到处乱扔“实体”是错误的吗

Can anyone point me to a site, or give me some wisdom on how you go about choosing names for interfaces, classes and perhaps even methods and properties relating to what that object or method does?

This is specifically for Microsoft development, so Java-esque "doGet" and so on isn't really used, however some general rules that cross language barriers must (I would've thought) exist.

An example might help: I have 4 choices of names for an interface:

IGroupedItem
IGroupableItem
IDataEntity
IGroupedEntity

They all contain an adjective and the noun, or just a noun. Looking at the .NET framework it seems like there must be some kind of ruleset for this, for consistency? Aside from the obvious verbs for methods.

Edit: Though the example is an interface, I'm not limiting this to just interfaces. The general guideline is classes are nouns, methods verbs, properties nouns. I suppose what I mean is choice of the synonym. Is throwing "Entity" everywhere wrong

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

多像笑话 2024-07-19 06:44:56

有关命名指南,请参阅 MSDN 文章。 简而言之:

  • 使用名词作为类名和属性名称(这是显而易见的)
  • 对于接口名称,以 I 开头并使用名词和/或形容词来描述行为
  • 使用动词作为方法名称来描述操作

对于您的示例 - IGroupableItem。

Look at the MSDN articles for naming guidelines. In short:

  • Use nouns for class names and property names (it's obvious)
  • For interface names, start with I and use nouns and/or adjectives to describe behavior
  • Use verbs for method names to describe action

For your example - IGroupableItem.

罪#恶を代价 2024-07-19 06:44:56

接口是类能够做的事情。 不是它是什么,而是它能做什么

IGroupableItem

其他名称描述事物是什么或太模糊而无用。

具体来说,“IDataEntity”基本上没有意义。 毕竟,一切都是数据实体。

Interfaces are things a class is capable of doing. Not what it is, but what it can do.

IGroupableItem

Other names describe what things are or are too vague to be useful.

Specifically, "IDataEntity" is largely meaningless. After all, everything's a data entity.

甜尕妞 2024-07-19 06:44:56

MSDN 有一篇关于接口命名指南的文章这可能会帮助你。 如果您想要接口以外的东西的命名约定,以及许多其他命名和设计指南,您也可以在 MSDN 上找到这些内容。

MSDN has an article just on Interface Naming Guidelines that may help you out. If you want the naming conventions of stuff other than interfaces, along with many other naming and design guidelines, you can find that all on MSDN, too.

木落 2024-07-19 06:44:56

这与 Spodi 的答案相同,但 MSDN 的类库开发人员的设计指南< /a> 大部分都很优秀,涵盖命名等等。

This is the same material as Spodi's answer, but MSDN's Design Guidelines for Class Library Developers are mostly excellent, covering naming and much, much more.

身边 2024-07-19 06:44:56

有一篇不错的文章
让错误的代码看起来错误
作者:乔尔·斯波尔斯基。 它讲述了不太流行但非常方便的命名约定。

There is nice article
Making Wrong Code Look Wrong
by Joel Spolsky. It tells about not so popular, but very handy naming convention.

初吻给了烟 2024-07-19 06:44:56

除了 MSDN 指南之外,Juval Lowy 的 IDesign 提供了一份 C# 编码标准文档,该文档非常有帮助(不知道这与 MSDN 是否/有多大不同)。

C# 编码标准

As well as the MSDN Guidelines, there is a C# Coding Standards document from IDesign by Juval Lowy that is quite helpful (don't know if/how much this differs from MSDN).

C# Coding Standards

旧城烟雨 2024-07-19 06:44:56

对于函数(等)名称中的动词,通常使用动词的原始形式,例如 HandleExecuteQueryIsAny , ...

一些不太常见的动词用法使其与 s/es 成为单数,例如 ProducesResponseType (MS 文档)。

For verbs in function (and etc.) names, it's common to use the original form of the verb, like Handle, ExecuteQuery, or IsAny, ...

Some less common usage of verbs makes it singular with s/es, like ProducesResponseType (MS Docs).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文