命名空间是否必须是 C# 中文件的名称
本文关键字:文件 中文 是否 命名空间 | 更新日期: 2023-09-27 18:34:41
例如,我将我的文件(控制台应用程序(命名为"Hello",那么我必须编写命名空间Hello吗?如果不是,添加命名空间的目的是什么?
不,命名空间可以是任何内容,它们不必与文件名相同。最好让命名空间对应于物理文件路径(解决方案中的文件夹(。
因此,如果您在 .'Interfaces'ViewModels'Client
中有一个文件,通常该文件中的命名空间声明将是:
namespace DefaultNamespaceOfAssembly.Interfaces.ViewModels.Client { ... }
ReSharper甚至提供修复违反此规则的命名空间。
namespace
的目的是
通过将属于一起的东西(例如通过功能(放在同一个命名空间中来模块化你的代码,
减少名称冲突。如果没有命名空间,如果外部库要包含与您自己的代码中的类同名的类,则导入外部库将导致地狱。
可能还有更多,但乍一看想到了这些,尽管这两个应该已经足以证明它们的存在。
我将我的文件(控制台应用程序(命名为"Hello",所以我必须编写命名空间 Hello?
不,你可以随心所欲地命名它。
如果您正在编写一个供其他代码使用的库,并且该库是该命名空间中类型的唯一(或主要(源,那么用户可以使用基于命名空间的名称来命名 DLL,因为这样他们可以很容易地记住UsefulTypes.CoolStuff
类都来自 UsefulTypes.CoolStuff.dll 程序集。没有规定你必须这样做,如果你这样做,它会很方便。
对于应用程序,这并不那么有用;最终用户不关心您使用什么命名空间,并且可能不知道命名空间是什么。如果应用程序是 .Net 开发人员的工具,则可能很有用,但除此之外则不然。
如果不是,添加命名空间的目的是什么?
正如它所说的那样;这是一个名字的空间。通过将类、枚举、委托和结构的名称放入命名空间中,它们与其他命名空间中使用的同名其他情况分开。您不必确保您使用的任何库都没有具有相同名称的内容,除非您实际上打算使用该具有相同名称的内容。
在编写应用程序时,它会将其他程序集的内容挡在外。在编写库时,它甚至更为重要,因为它还可以让你的东西远离其他人。