如何让C#命名空间的工作,如Java软件包,使他们自动移动它们时重命名?(How to make t

2019-07-29 10:58发布

我来自Java和看到包在Java中是非常方便的。 当您移动类到另一个包时,它会自动更改包。 (当然,通过IDE如Eclipse或Netbean)

但是C#使用命名空间,没有我的名字空间更名为自动像它在Java中。 比如我有一个文件,该文件的命名空间是com.app ,我把它放在com.app ,但在稍后的时间,我移动这个文件到com.lib文件夹和其命名空间仍然是com.app 。 所以,我觉得这是很难管理,因为我手动移动它。

请给我帮助如何解决我的问题。 (文件的命名空间被命名文件夹包含,当我移动到其他,我将自动更改)。 我们能做到吗?

Answer 1:

我通过使用被称为IDE插件解决问题ReSharper的 。 (在很多很多有用的功能),它在一个命名空间是错误的(基于组件的文件夹层次结构和根命名空间),可为您解决问题凸显。

请注意,不像Java中,有时有非常正当的理由一类是在超过一个由目录结构推断其他的命名空间。 一个很好的例子可能是扩展方法的类,它需要在范围,即调用它们的类。 因此,这是常见的有:

/myProject
  /extensions
     /MyExtensionMethodClass.cs

与像一个命名空间myProject (使得延伸方法可以在任何地方myProject的使用而无需使用一个指令)



Answer 2:

其实那是因为C#有部分类的概念,也就是说,你可以沿着几个文件分发您的C#类,而不是仅仅有它编码成一个单一的文件,如Java的。 出于这个原因,在.net命名空间分布的容器,而不是集中的容器,由你命名空间orperator定义。



文章来源: How to make the C# namespace work like Java Packages so they rename automatically when moving them?