4

在工作中,他们对命名空间的命名非常详尽(在我之前)。一个典型的命名空间可能是

CompanyName.SubCompanyName.DepartmentName.ProjectName.UniqueProjectName.ProjectName.FilteredProjectName

可悲的是,我不是在开玩笑。问题是,尽管对项目所在的位置有一定的了解,但它实在是太吵了。我想缩短它。

我想使用using关键字(关于声明要使用哪些命名空间),然后使用等于符号来使用命名空间别名。现在问题变成了命名空间声明和类属性之间的歧义。例如

Project.Message

就目前而言,我们不知道 Project 是静态类的名称、命名空间还是已经初始化的对象的名称(尽管这个词this.有助于澄清它)。

因此,在这样的背景下,我的问题是关于命名约定。对我来说,使用匈牙利风格的命名约定是有意义的(我知道这些天现在被认为已经过时了)所以我可以做类似的事情

使用 nsProject = CompanyName.SubCompanyName.DepartmentName.ProjectName.UniqueProjectName.ProjectName.FilteredProjectName

请注意,我在它前面加上了 ns(命名空间)。因此,如果代码看起来像以下任何一种,那么至少有一些清晰性:

this.Project.Message
nsProject.Message
Project.Message

上面的 3 个例子现在已经很清楚了:第一个已经在项目中声明,第二个是命名空间,第三个可能是静态方法调用。

有没有人对这种方法有任何意见?我是在重新发明轮子(是否已经制定了指导方针),还是有人对可以做什么有不同的看法?

编辑

想要使用 Alias 的另一个原因是当前命名空间与文件夹结构不匹配(或在某些地方没有任何意义)。因此,我不仅要确保明确使用的对象/命名空间类型,而且我的 Alias 还将作为文件夹位置的指南。我知道,这可能读作黑客等,但(根据这篇文章中的评论)这是许多人的第一阶段。

4

1 回答 1

2

我不知道任何“官方”指南,但每当我给命名空间起别名时,我通常会使用公司和项目的缩写。这将导致(使用您的示例):

this.Project.Message.Send();
CompanyProject.Message.Send();
Project.Message.Send();

我更喜欢匈牙利语btw之上的后缀(我知道主观)。

于 2012-10-23T10:50:12.853 回答