1

根据.NET 框架的通用命名约定:

X 不要使用缩写或缩写作为标识符名称的一部分。

例如,使用 GetWindow 而不是 GetWin。

X 不要使用任何未被广泛接受的首字母缩略词,即使是,也仅在必要时使用。

我曾经考虑过GetName可以用于我的方法,但我相信它在语义上没有那么有意义。

为了不偏离命名约定太远,我试图找出被广泛接受的首字母缩略词,但我对以下方法没有想法:

String GetExplicitInterfaceMemberImplementationName(MemberInfo info) {
       return info.DeclaringType.Name+"."+info.Name; 
}

对于这种情况,它实际上并不比语句长,而只是相同的长度;并且Type.Delimiter应该使用而不是".". 然而,命名问题常常困扰着我。

那么,我应该声明什么方法名呢?对于长期解决方案,我能做什么?

还有一个问题,是否有开箱即用的 API 做同样的事情?


编辑1:

停下来想一想,这对我来说是个好建议。

出于其声明的目的,也是为了语义而不是违反命名约定,我从 [ AddAttributeStoreCommand.TypeQualifiedName Property ] 中得到了一个想法;所以我现在将其声明为:

public static String GetTypeQualifiedName(this MemberInfo info) {
    return info.DeclaringType.Name+"."+info.Name;
}

然而,长期的解决方案还没有出现..


编辑2:

我不确定这样命名是否是一个好习惯..

public static String GetTypeDotItsName(this MemberInfo info) {
    return info.DeclaringType.Name+"."+info.Name;
}
4

2 回答 2

4

Code Complete 2nd Edition对方法名称长度有这样的说法:

尽可能长的例程名称

研究表明,变量名称的最佳平均长度是 9 到 15 个字符。例程往往比变量更复杂,它们的好名字往往更长。南安普顿大学的 Michael Rees 认为平均 20 到 35 个字符是一个很好的标称长度(Rees 1982)。平均长度为 15 到 20 个字符可能更符合实际,但清晰的名称恰好较长也可以。

注意平均这个词。如果方法名称尽可能清晰,并且是 50 个字符,那么无论如何。没关系。

但是,这本书确实在几段前提到了另一件事:

如果你的例程有副作用,你会有很多长而愚蠢的名字,解决方法是不要使用描述性较差的例程名称;解决方法是编程,以便让事情直接发生而不是产生副作用。

当然,副作用不是这里的问题,但你可以扩展这个想法。问问自己“这个又长又傻的名字是不是因为我在做过于复杂的事情而出现?” 如果您确定需要一个 ExplicitMemberInterfaceImplementationName,那很好,但至少可以停下来思考一下。

于 2013-06-22T10:18:48.087 回答
1

1) 输入所需的信息,以明确该方法的目的。您可能可以将示例名称的长度减半,而不会失去对其适用性的理解。

2) 指导方针就是指导方针。当规则变得适得其反时,不要盲目地遵守规则。如果使用缩写更容易阅读和理解代码,请使用缩写。主要是尽量将缩写限制为常用的长名称,并为它们使用直观且常用的缩写,以便任何阅读您的代码的人都可以轻松理解它们的含义。例如,decl 是声明的常见缩写,很难误认为其他任何东西。

3) 有时您可以通过使用同义词来避免缩写的需要。

我认为您可能会从您的名字中删除 interface 和 member 而不会失去意义。但也许“显式接口实现名称”实际上是“显式名称” - 显式具有明确定义的含义,尤其是在您的类的上下文中,并且您始终可以在文档注释中添加完全防水的法律定义。所以:“GetExplicitName”

于 2013-06-22T15:51:34.257 回答