提问人:Paul Jansen 提问时间:7/1/2014 最后编辑:Paul Jansen 更新时间:7/1/2014 访问量:1056
在多个文件中重复使用指令
Duplicated using directives in multiple files
问:
我有 5 个 C# 文件,其中有 20 个共同的 using
指令。我想摆脱这种代码重复,特别是因为这 20 个 using 指令在逻辑上属于一起。在 C 或 C++ 中,我会创建一个包含这 20 个包含文件的额外头文件。这个额外的头文件充当一个图层,然后一次性包含其他 20 个文件。
不幸的是,我不知道如何在 C# 中做到这一点。有什么建议吗?
答:
14赞
Lasse V. Karlsen
7/1/2014
#1
在 C# 中无法执行此操作,因为 C# 没有预处理器,而 C# 编译器虽然支持某些类似于预处理器语法的语法,但由编译器本身处理,并且编译器不支持包含指令。
此外,即使一个文件实际上需要 20 个 using 语句,在我看来,您似乎在一个类中承担了太多责任。也许通过重构和重构代码库来更好地做到这一点,从而减少所需的 using 指令的数量?
或者,你可以从不同的角度来看待它。你说这 20 个 using 指令都“逻辑上属于一起”,那么为什么还有 20 个命名空间呢?在我看来,因为您已经将某些功能分散到太多的命名空间中。
因此,无论哪种方式,我都会考虑重组代码。
评论
0赞
Alexei Levenkov
7/1/2014
+1.(我已将问题更改为使用“指令”而不是“语句”)
0赞
Paul Jansen
7/1/2014
谢谢Lasse。这20句话只是为了说明我的观点。实际重复是 14 个语句。
1赞
Lasse V. Karlsen
7/1/2014
没关系,对我来说,这听起来像是你应该重构代码,但这是由你决定的。这里真正的答案是 C# 编译器不使用预处理器,也不处理 include 指令。因此,您要么必须减少 using 指令的数量,要么忍受重复。老实说,如果这是这些文件的唯一问题,我会保留它。
1赞
Tarec
7/1/2014
#2
简单的答案。如果代码文件使用 20 个常用 using 语句,则不应将它们分成 20 个语句。此外,我不会太担心这种代码重复。它不会以任何方式影响您的运行时性能,因此它与 DRY 范式无关。
评论
0赞
Sam Holder
7/1/2014
我不会说 DRY 与提高运行时性能有关。它更多地与可维护性、重用性以及仅在一个地方定义功能有关。事实上,将通用代码放在单独的类/函数中可能会使其性能略有下降,因为它必须从那里调用,而不仅仅是内联编译。
0赞
Lasse V. Karlsen
7/1/2014
DRY 绝对不仅与运行时性能有关。
0赞
Tarec
7/1/2014
在这种情况下,您是对的,尽管像 VisualStudio 这样的 IDE 允许您在重构时隐藏整个部分并即时更改命名空间,所以我也不会真正打扰。当然,这在很大程度上取决于你的项目的复杂程度,所以我的建议在这里可能是错误的。尽管如此,这是一个值得投票的问题。using
评论