Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C语言中的名称空间#_C# - Fatal编程技术网

C# C语言中的名称空间#

C# C语言中的名称空间#,c#,C#,我正在使用一个ASP.NETMVC项目,每次我将一个类添加到一个文件夹中,它都会产生很长的名称空间 示例: Project = Tully.Saps.Data Folder = DataAccess/Interfaces Namespace = Tully.Saps.Data.DataAccess.Interfaces Folder = DataAccess/MbNetRepositories Namespace = Tully.Saps.Data.DataAccess.MbNet

我正在使用一个ASP.NETMVC项目,每次我将一个类添加到一个文件夹中,它都会产生很长的名称空间

示例

Project = Tully.Saps.Data  
Folder = DataAccess/Interfaces  
Namespace = Tully.Saps.Data.DataAccess.Interfaces

Folder = DataAccess/MbNetRepositories  
Namespace = Tully.Saps.Data.DataAccess.MbNetRepositories
问题

最好不要使用名称空间,而是将using子句添加到访问它的类中,或者将此项目中的所有内容的名称空间更改为Tully.Saps.Data?

不要使用名称空间,而是添加usings。手动更改这样的内容(更难调试、与其他项目不一致等等)会给您带来麻烦。

如何处理这些问题完全取决于您自己。如果您只打算访问一个名称空间的成员一两次,那么添加“using”语句对您来说真的没有多大帮助

如果要多次使用它,那么减少名称空间链可能会使内容更易于阅读


如果您只是希望在逻辑上将文件分组在一起,而不创建新的名称空间,则始终可以更改名称空间,这样它就不会添加新的文件夹名称。

根据FXCop,我同意:

避免使用类型较少的名称空间

一个名称空间通常应该有五种以上的类型

另外(这也适用于“单一名称空间”的建议——这几乎等同于说没有名称空间)

在名称空间中声明类型

应在命名空间内定义类型以避免重复

  • 名称空间
.名称空间帮助我们定义对象模型或应用程序中一组实体的“范围”。这使它们成为软件设计决策,而不是文件夹结构决策。例如,在MVC应用程序中,拥有模型/视图/控制器文件夹和相关名称空间是很有意义的。因此,虽然在某些情况下,文件夹结构可能与我们决定在开发中使用的名称空间模式相匹配,但它不是必需的,也可能不是我们想要的。每个名称空间都应该是逐案决定的

  • 使用语句

为名称空间定义using语句是一个单独的决定,它取决于代码中引用该名称空间中的对象的频率,并且不应以任何方式影响我们的名称空间创建实践。

不要管它。这是IDE如何决定编码风格的一个很好的例子

仅仅因为您使用的工具(Visual Studio)决定每个文件夹需要一个新名称空间,并不意味着您需要。
我个人倾向于将我的“数据”项目作为一个名称空间。如果我有一个名为“Model”的子文件夹,我不希望这些文件位于Something.Data.Model命名空间中,我希望它们位于Something.Data中