命名类和命名空间是一样的吗?

Moo*_*ade 1 .net c# naming-conventions

我是C#的初学者(虽然我很了解Java)并且在命名空间和类/接口方面遇到了问题.

什么是行不通的是这个:

- Projekt
--> (Interface) Node
--> (Namespace/Folder) Node
-----> (Class): SomethingNode : Node
-----> ... 
Run Code Online (Sandbox Code Playgroud)

因为存在错误,类型"Project.Node"和命名空间"Project.Node"的名称相同.

我将解释为什么我会故意为这些命名:我有很多类实现接口"Node".这些类应该都在一个命名空间中,所以为什么不把它们命名为"Node"我想.接口"Node"应该在项目的根命名空间中,因为它被其他类使用,我不想将接口"Node"移动到"Project.Node.Node",因为我觉得这很愚蠢.总是导入"Project.Node"只是因为我需要界面.

所以我的问题是,我应该如何解决这种情况?我应该如何命名我的类/命名空间,是否有一种很好的方式来做这个,这种情况是否有任何命名约定?

Jam*_*ull 8

您应该遵循.NET约定并命名您的界面INode.然后Node命名空间内的类将实现您的INode接口.