.NET 命名空间

2023-11-27

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

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

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

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

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


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

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

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

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

.NET 命名空间 的相关文章

  • 阻止 Outlook 将 HTML 转换为 RTF

    我正在为 Outlook 2007 编写一个加载项 一切正常 除了当我以 HTML 格式发送电子邮件时 Outlook 将其转换为 RTF 因此 如果收件人在例如中打开它 Thunderbird 他收到的是一条看起来很奇怪的短信 而不是我发
  • C# 可以扩展数组吗?

    我习惯向 IEnumerable 等外部类添加方法 但是我们可以在 C 中扩展数组吗 我计划向数组添加一个方法 将其转换为 IEnumerable 即使它是多维的 不相关如何在 C 中扩展数组 https stackoverflow com
  • 将 .NET P/Invoke 代码组织为 Win32 API 的最佳实践

    我正在 NET 中重构一个大型且复杂的代码库 该代码库大量使用 P Invoke to Win32 API 该项目的结构不是最好的 我发现 DllImport 语句遍布各处 经常为同一函数重复 并且还以多种方式声明 导入指令和方法有时声明为
  • 使用 ITextsharp 将 Html 导出为 PDF

    我已经尝试了下面的代码 我也遇到了错误 我正在使用最新的 DLL String strSelectUserListBuilder h1 My First Heading h1 p My first paragraph p String ht
  • 如何正确复制/克隆结构?我应该使用一个类吗?

    假设我有那个 Structure myStruct Public myPoint As Point Public myBool As Boolean End Structure 如何复制 克隆该结构 我现在解决了这个问题 我使用的代码示例
  • 从 C# 检测 powerpoint 形状上的事件

    是否有可能检测在 Powerpoint 形状 例如箭头 上发生的事件 到目前为止 我发现唯一的可能性是 selectitemchanged beforerightclick 和 beforedoubleclick 但无法找到检测其他内容的方
  • 去除字符串的最佳方法是什么?

    我需要具有最佳性能的想法来删除 过滤字符串 I have string Input view 512 3 159 删除 view 和 的最佳性能方法是什么 和引号 我可以做这个 Input Input Replace view Replac
  • 为什么 IsAssignableFrom() 不适用于 int 和 double?

    这是错误的 typeof double IsAssignableFrom typeof int 这是错误的 typeof int IsAssignableFrom typeof double 但这有效 double a 1 0 int b
  • 为什么自定义类型变量不保存值MVC

    我正在尝试使用 MVC 5 构建一个网站 我有一个包含 3 个变量的控制器类 public class WorkerController Controller public ViewModel viewModel new ViewModel
  • Spring.NET 和构造函数拦截器

    我正在尝试在构造时对对象进行一些 AOP 并找到了 IConstructorInterceptor 这对于我想要的东西来说是完美的 但它似乎不起作用 http jira springframework org browse SPRNET 2
  • 并行应用程序的可变与不可变[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在我正在编写的应用程序中 我需要编写大量基本类型 这些类型很可能是不可变的 但我想知道并行应用程序中可变类型与不可变类型的比较如何 您可以对可变
  • Dotnet“新”命令不适用于 Framework 4.5?

    我正在尝试使用 dotnet 创建 4 5 框架类库项目new命令如下 dotnet new classlib lang C f net45 o TestProject 错误 无效参数 f 网络45 net45 不是 f 框架 的有效值 如
  • 该组件没有由 uri 标识的资源

    我想创建一个通用数据网格以在我的所有视图 用户控件上使用 这是我的结构 Class Library called Core Class called ViewBase public class ViewBase UserControl pu
  • Java有没有类似微软CHESS的工具?

    是否有类似于 Microsoft 的现有 Java 工具CHESS http research microsoft com chess 或者 CHESS 源代码是否开放 以便我可以尝试将其转换为 Java 谷歌的织线工 http code
  • 托管 .NET 代码中的“访问冲突写入位置...”

    我收到以下异常 MqSearch exe 中 0x000007FE21AFE593 mscorlib ni dll 处出现未处理的异常 0xC0000005 写入位置 0x00000006609476FD 时出现访问冲突 代码是完全托管的
  • JAXB:如何注释类以使它们属于不同的命名空间?

    我希望有JAXB 注释的类将是 编组 解组到不同的 XML 命名空间 我需要的是这样的
  • 调整图像的亮度、对比度和伽玛值

    在 NET 中调整图像的亮度 对比度和伽玛值的简单方法是什么 c and gdi have a simple way to control the colors that are drawn It s basically a ColorMa
  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • 使用.Net/C# 计算集合的频率分布

    是否有一种快速 简单的方法来使用 Linq 或其他方式计算 Net 集合的频率分布 例如 任意长的 List 包含许多重复项 遍历列表并计算 跟踪重复次数的巧妙方法是什么 查找列表中重复项的最简单方法是将其分组 如下所示 var dups
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况

随机推荐

  • 当 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 中 但唯一真正让我困惑的是命名空间