[英]How to make the C# namespace work like Java Packages so they rename automatically when moving them?
我來自Java,看到Java中的包非常方便。 將類移動到另一個包時,它將自動更改包。 (當然,由Eclipse或Netbean等IDE)
但是C#正在使用命名空間,並且沒有像在Java中那樣自動重命名我的命名空間。 例如,我有一個文件名,其命名空間是com.app
,我將它放在com.app
,但是稍后,我將此文件移動到com.lib
文件夾,其命名空間仍然是com.app
。 所以,我發現這很難管理,因為我正在手動移動它。
請幫我解決我的問題。 (文件的命名空間由它包含的文件夾命名,當我移動到其他文件時,我會自動更改)。 我們能做到嗎?
我通過使用名為Resharper的IDE插件解決了這個問題。 (在許多有用的功能中),它突出顯示命名空間錯誤時(基於程序集的文件夾層次結構和根命名空間)並可以為您修復它。
請注意,不像Java中,有時有非常正當的理由一類是在超過一個由目錄結構推斷其他的命名空間。 一個很好的例子可能是擴展方法類,它們需要在調用它們的類的范圍內。 因此,通常有:
/myProject
/extensions
/MyExtensionMethodClass.cs
使用像myProject
這樣的命名空間(這樣擴展方法可以在沒有using指令的myProject中的任何地方使用)
這實際上是因為C#具有部分類的概念,也就是說,您可以將C#類分布在多個文件中,而不是僅將其編碼到單個文件中,如Java。 因此,.Net中的命名空間是分布式容器,而不是由命名空間orperator定義的集中容器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.