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

标签 c#

<分区>

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

最佳答案

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

因此,如果您在 .\Interfaces\ViewModels\Client 中有一个文件,通常该文件中的 namespace 声明为:

namespace DefaultNamespaceOfAssembly.Interfaces.ViewModels.Client { ... }

ReSharper 甚至提供修复违反此规则的命名空间。

命名空间的目的是

  • 通过将同属一类的东西(例如按功能)放在同一个命名空间中来模块化您的代码,

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

可能还有更多,但一开始想到的是这些,虽然这两个应该已经足以证明它们的存在了。

关于c# - 命名空间是否必须是 c# 中的文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35392650/

相关文章:

c# - asp.net 和 c# 中的动态下拉列表

c# - 如何确定var的大小?

Java 与 C# 毫秒时间戳生成

c# - 确定 IDisposable 是否应该扩展接口(interface)或在实现所述接口(interface)的类上实现

c# - 为什么 IsAssignableFrom 和 GetInterface 给出不同的结果

c# - Xamarin.Android - 如何实现通用图像加载器库中使用的回调

c# - 扩展 .net TabControl 的一些问题

c# - 如何在 LINQ 中选择查询时存储变量?

c# - 查找计算机上的总物理内存,.NET core 2.1,c#,Ubuntu

c# - 对于 mvc 4 的文本框,空字符串返回 null