名称空间是否必须是c#中文件的名称?

名称空间是否必须是c#中文件的名称?,c#,C#,例如,我将我的文件(控制台应用程序)命名为“Hello”,那么我是否必须编写名称空间Hello?如果否,添加名称空间的目的是什么?否,名称空间可以是任何内容,它们不必与文件名相同。让名称空间对应于物理文件路径(解决方案中的文件夹)是一种很好的做法 因此,如果您在\Interfaces\ViewModels\Client中有一个文件,则该文件中的名称空间声明通常为: namespace DefaultNamespaceOfAssembly.Interfaces.ViewModels.Client

例如,我将我的文件(控制台应用程序)命名为“Hello”,那么我是否必须编写名称空间Hello?如果否,添加名称空间的目的是什么?

否,名称空间可以是任何内容,它们不必与文件名相同。让名称空间对应于物理文件路径(解决方案中的文件夹)是一种很好的做法

因此,如果您在
\Interfaces\ViewModels\Client
中有一个文件,则该文件中的名称空间声明通常为:

namespace DefaultNamespaceOfAssembly.Interfaces.ViewModels.Client { ... }
ReSharper甚至提供修复违反此规则的名称空间

名称空间的目的是

  • 通过将属于同一名称空间的内容放在一起(例如,通过功能)来模块化代码

  • 减少名称冲突。如果外部库包含与您自己的代码中的类同名的类,那么如果没有名称空间,则导入外部库将导致地狱


可能还有更多,但一开始想到这些,尽管这两个已经足以证明它们的存在。

不,名称空间可以是任何东西,它们不必与文件名相同。让名称空间对应于物理文件路径(解决方案中的文件夹)是一种很好的做法

因此,如果您在
\Interfaces\ViewModels\Client
中有一个文件,则该文件中的名称空间声明通常为:

namespace DefaultNamespaceOfAssembly.Interfaces.ViewModels.Client { ... }
ReSharper甚至提供修复违反此规则的名称空间

名称空间的目的是

  • 通过将属于同一名称空间的内容放在一起(例如,通过功能)来模块化代码

  • 减少名称冲突。如果外部库包含与您自己的代码中的类同名的类,那么如果没有名称空间,则导入外部库将导致地狱

也许还有更多,但一开始我想到了这些,尽管这两个已经足够证明它们的存在

我将我的文件(控制台应用程序)命名为“Hello”,所以我必须编写名称空间Hello吗

不,你想叫什么就叫什么

如果您正在编写一个库供其他代码使用,并且该库是该命名空间中唯一(或主要)的类型源,那么用户可以方便地使用基于该命名空间的DLL名称,因为这样他们就很容易记住,
UsefulTypes.CoolStuff
类都来自UsefulTypes.CoolStuff.dll程序集。没有规定你必须这样做,如果你这样做的话会很方便

对于应用程序来说,这远没有那么有用;最终用户不关心您使用的名称空间,并且可能不知道名称空间是什么。如果应用程序是.Net开发人员的工具,那么它可能会很有用,但在其他方面则不是

如果否,添加名称空间的目的是什么

确切地说是什么;这是一个名字的空间。通过将类、枚举、委托和结构的名称放入命名空间中,它们与其他命名空间中使用的相同名称的其他情况分开。您不必确保您使用的库中没有具有相同名称的库,除非您实际上要使用具有相同名称的库

在编写应用程序时,它会阻止来自其他程序集的内容。在编写库时,它甚至更为重要,因为它还可以让你的东西远离其他人

我将我的文件(控制台应用程序)命名为“Hello”,所以我必须编写名称空间Hello吗

不,你想叫什么就叫什么

如果您正在编写一个库供其他代码使用,并且该库是该命名空间中唯一(或主要)的类型源,那么用户可以方便地使用基于该命名空间的DLL名称,因为这样他们就很容易记住,
UsefulTypes.CoolStuff
类都来自UsefulTypes.CoolStuff.dll程序集。没有规定你必须这样做,如果你这样做的话会很方便

对于应用程序来说,这远没有那么有用;最终用户不关心您使用的名称空间,并且可能不知道名称空间是什么。如果应用程序是.Net开发人员的工具,那么它可能会很有用,但在其他方面则不是

如果否,添加名称空间的目的是什么

确切地说是什么;这是一个名字的空间。通过将类、枚举、委托和结构的名称放入命名空间中,它们与其他命名空间中使用的相同名称的其他情况分开。你不必确保你使用的库没有同名的东西,除非你要用相同的名称


在编写应用程序时,它会阻止来自其他程序集的内容。编写库时,这一点更为重要,因为它还可以防止您的内容妨碍其他人。

最佳做法是将文件命名为与类相同的名称(每个文件一个顶级类)。名称空间应该与目录结构相匹配,但如何命名则取决于您。通常名称空间与文件所在的文件夹相连接。它有助于将代码组织为@john idention。最佳做法是将文件命名为与类相同的名称(每个文件一个顶级类)。名称空间应该与目录结构相匹配,但如何命名则取决于您。通常名称空间与文件所在的文件夹相连接。它有助于将代码组织为@john。