.NET 命名空间

2023-11-27

我的背景主要是 Java 开发人员,但最近我一直在 .NET 方面做一些工作。因此,我一直尝试在家做一些简单的项目,以更好地使用 .NET。我已经能够将我的大部分 Java 经验转移到使用 .NET(特别是 C#)中,但唯一真正让我困惑的是命名空间。

我知道命名空间与 Java 包类似,但据我所知,主要区别在于,对于 Java 包,它们使用实际的文件夹来显示分隔,而在 .NET 中则不然,所有文件都驻留在一个文件夹中并且命名空间只是在每个类中声明。

我觉得这很奇怪,因为我总是将包视为组织和分组相关代码的一种方式,使其更容易导航和理解。由于在 .NET 中它不是这样工作的,随着时间的推移,项目会显得更加拥挤并且不那么容易导航。

我在这里错过了什么吗?我必须。我应该将解决方案中的内容分解为单独的项目吗?或者是否有更好的方法来组织项目中的类和文件?

编辑:正如布莱尔指出的,这几乎是同样的问题here.


我不能声称这是最佳实践,但我经常看到文件组织在反映命名空间的目录层次结构中。如果它更适合您对代码的心理模型,那么就这样做 - 我想不出有什么坏处。仅仅因为 .NET 模型不强制命名空间、项目和目录结构之间的关系,并不意味着您不能拥有这样的关系(如果您愿意的话)。

我对将代码分解为比您需要的更多的项目有点谨慎,因为这会减慢编译速度,并在您必须管理多个程序集时增加一点开销。

编辑:请注意,这个问题几乎是重复的解决方案中的文件夹应该与命名空间匹配吗?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

.NET 命名空间 的相关文章

随机推荐

  • 当 JS 需要 PHP 变量时,如何将 javascript 与 PHP 分开?

    下面是我在 jquery 和 PHP 中看到的代码的一小段 请注意第 5 行的 PHP 部分 我通常将 javascript 放入单独的文件中 那么我如何才能将 JS 保存在单独的文件中 但在需要时仍然使用 PHP 如下所示 when th
  • [[maybe_unused]] 在成员变量上,GCC 警告(错误地?)该属性被忽略

    在下面的example struct Foo maybe unused int member 1 void bar maybe unused int local 0 int main int argc char argv Foo f f b
  • 选择每组中倒数第二条记录

    这里有张桌子Remark包含如下所示的数据 SerialNo RemarkNo Desp 10 1 rainy 10 2 sunny 11 1 sunny 11 2 rainy 11 3 cloudy 11 4 sunny 12 1 rai
  • “无法锁定变量”SSIS 错误

    对于每小时运行的预定 SSIS 包 我随机收到错误 最有趣的是 如果我删除检查点文件并再次运行该包 它工作正常 但错误可能会在将来的运行中出现 我不知道为什么会发生这种情况 这是完整的错误消息 以用户身份执行 UserNameChanged
  • 多维数组的嵌套 ng-repeat

    我在尝试着使用 ng repeat 指令在 html 中显示二维数组 我可以显示第一个维度 表行 但第二个维度 表数据 不起作用 我见过很多使用对象 JSON 键值数据结构的解决方案 但我找不到有效的东西对于仅包含其他数组的数组 以下是一些
  • 在 pandas python 中将指数或科学数转换为整数

    我是Python的初学者 试图从数据集中获取具有最高idmb评级和最高总总额的行 但我的gross total值不是整数 我如何将其转换为整数 以及如何获得执行统计功能的特定值 import pandas as pd dataset pd
  • 检测挤压的最简单方法

    这是一个WEB APP不是本机应用程序 请不要使用 Objective C NS 命令 所以我需要检测 iOS 上的 捏 事件 问题是我看到的用于执行手势或多点触摸事件的每个插件或方法 通常 都是使用 jQuery 并且是针对阳光下每个手势
  • 将二进制文件安装到 /bin、/sbin、/usr/bin 和 /usr/sbin 中,与 --prefix 和 DESTDIR 交互

    大多数使用 Autotools 的软件包都是用户级实用程序 或者至少具有足够高的级别 可以完全在 usr 或低到完全低于 usr 我正在编写一个包 需要将一些文件安装到 bin 一些进入 sbin usr bin and usr sbin
  • 安全且区域设置敏感地解析数字

    Java s NumberFormat1 非线程安全 可以通过ThreadLocal 2 不方便正确使用对于最简单的用例 当我知道字符串是否应包含 int long 或 double 并且想要一个如下 API 时 int parseInt
  • Python:在 Windows 上的 Ubuntu 上通过 Bash 运行 pygame

    我最近安装并一直在玩Windows 上 Ubuntu 上的 Bash 在大多数情况下 它效果很好 我正在尝试通过 BUW 运行 pygame 脚本 但它不会在弹出窗口中渲染图形 相反 它似乎包含在 bash 窗口中 如下所示 这是 pyga
  • Qt Designer - 如何将信号连接到静态函数?

    好的 我正在使用 Qt Designer 构建 GUI 我已经设法弄清楚如何制作菜单栏 并向菜单栏添加了一些操作 但现在我需要连接这些操作以使它们执行某些操作 具体来说 在我的文件菜单上 我有简单的打开操作 我希望此操作运行一个调用我的 Q
  • Docker - 容器和主机之间的 ulimit 差异

    我以为docker容器与主机共享这些属性 然而 一方面docker楼主 有这些ulimit设置 ulimit a core file size blocks c 0 data seg size kbytes d unlimited sche
  • 我可以创建一个“除内部类型之外的密封类型”吗

    我想创建一个可以由同一程序集中的类型继承的类型 但不能从程序集外部继承 我确实希望该类型在程序集外部可见 这可能吗 您可以将构造函数设为内部 public class MyClass internal MyClass 每个从基类派生的类都必
  • 如何在 PHP 中对 UTF-8 字符串数组进行排序?

    需要按 utf 8 对单词进行排序的帮助 例如 我们有来自比利时的 5 个城市 array array Borgloon Thuin Lennik ghez e Aubel sort array Expected Aubel Borgloo
  • 如何使用Word Automation在段落中添加下标字符?

    我正在开发一个 C 程序 该程序使用 Microsoft Word 14 0 对象库创建 doc 文件 向其中添加段落并保存 有一个带有按钮的小表单 可以执行所描述的操作 请参阅下面的代码 这部分没有问题 Problem 创建的 Word
  • SET NOCOUNT ON 真的能带来那么大的性能差异吗

    In this article 作者认为存在与以下相关的材料开销SET NOCOUNT ON并且 通过消除网络的额外开销 可以极大地提高数据库和应用程序的整体性能 作者引用了从 2000 年到 2005 年默认存储过程模板的更改 并表示 微
  • 如何在 ASP.NET MVC 中添加动态 robots.txt 的路由?

    我有一个不是静态的而是动态生成的 robots txt 我的问题是创建从 root robots txt 到我的控制器操作的路由 This works routes MapRoute name Robots url robots defau
  • Discord API 401:未经授权的错误

    我正在尝试使用discord API 从我的服务器获取审核日志 我在标头中发送我的授权令牌 但它仍然返回错误 401 My code headers authorization AUTH TOKEN params limit 50 user
  • 调用基本构造函数时是否应该复制继承构造函数的参数?

    对于以下程序 include
  • .NET 命名空间

    我的背景主要是 Java 开发人员 但最近我一直在 NET 方面做一些工作 因此 我一直尝试在家做一些简单的项目 以更好地使用 NET 我已经能够将我的大部分 Java 经验转移到使用 NET 特别是 C 中 但唯一真正让我困惑的是命名空间