在哪里“找到”C#结构? /如何在项目中组织结构

时间:2011-09-19 22:48:13

标签: c# c++ struct convention placement

我试图了解在项目中放置C#和/或C ++结构的惯例。在它自己的源文件中?如果是的话,是否有任何我应该养成习惯的惯例?

在第一年,这些约定并没有真正讨论过,但一般来说,我们在结构被“使用”或“感觉”最相关的地方“卡住”......

在我的特定情况下,我有几个结构明确地由值类型组成,这些结构将在整个特定应用程序及其类中传递,所以我不能肯定地说任何一个特定的“区域”都可以声明任何所有权。

4 个答案:

答案 0 :(得分:5)

在C ++中,如果结构由某个类或接口等“拥有”,那么我更愿意将它声明为拥有它的内部类型。如果struct是许多不同类使用的通用协议,那么我将它放在自己的.h文件中。如果struct是一个相关的小型结构集之一,那么我为这些事情创建一个名称空间,并在提供该名称空间的单个.h文件中声明所有结构。

在C#中,我可能会像在C ++中那样做。

答案 1 :(得分:4)

仅与单个类相关的小结构通常与该类放在同一个文件中。类似地,在单个类中使用的小型简单类通常放在同一个文件中。这标识该项与特定类相关,并且是将其与该类分组的方法。

任何既不简单(只有少数几个值)且特定于单个类的结构应该在它自己的文件中。

答案 2 :(得分:3)

你应该能够为每个结构或每组相关结构创建一个单独的文件(我建议每个结构一个,但有时这会很繁琐 - 如果你对它们进行分组,请务必仔细地命名)。 / p>

如果项目足够大,可以在调用它们时使用“区域”,那么为适当描述它们的结构引入一个或多个名称空间可能是明智的。这样可以防止命名冲突,并为代码使用客户端提供一种记忆方式。必须对名称进行限定似乎有时会很痛苦,但它在大型项目中很重要,并且最终会有所帮助。

最后,大多数大型项目在高级目录或定义其消息接口的位置都有Common文件夹。这很重要,因此每个人都可以认识到,位置包含所有人应该使用的数据结构,以保持清晰,一致的界面,避免需要大量的转换代码,这些代码既耗时又昂贵(并且通常最终也会被复制! )。

答案 3 :(得分:1)

如果跨多个类使用该结构,我将其放在自己的文件中。 Stylecop不会抱怨任何一种方式。并且整形器具有将结构移动到其自己的文件的重新分解。