预处理器指令和不必要的 Using 指令

Preprocessor directives and unnecessary Using directives

提问人:Jens Bergvall 提问时间:8/29/2019 更新时间:8/29/2019 访问量:301

问:

我有一些代码,我只需要在部署的环境(暂存/测试/生产)中运行。

该代码将一些 usings 生成到文件顶部显示的其他命名空间。.cs

但是,当我将此代码放入我的预处理器指令中时,文件顶部的 usings 现在声明#IF !DEBUG.cs

使用 directive 是不必要的。

这感觉很危险。由于这是一个多人项目,我担心有人会在某个时候输入此文件并自动删除使用,因为它们被标记为不必要的。

我目前的解决方案是只在文件顶部注释代码,而不是删除它们。

那么,我怎样才能使我不必要的 usings 指令变得不必要呢?

C# 预处理器指令 USING-Directives

评论

0赞 Murray Foxcroft 8/29/2019
您是否也在 #IF 中使用指令!调试
0赞 Murray Foxcroft 8/29/2019
您是否也在 #IF 中使用指令!调试
0赞 Jens Bergvall 8/29/2019
@MurrayFoxcroft不,是一回事吗?我不知道这是一回事。
0赞 Murray Foxcroft 8/29/2019
我没有测试过,但应该是一回事。它有效吗?
0赞 Lasse V. Karlsen 8/29/2019
要么完全限定 ifdef 部分中使用的类型,要么将 using 指令也放在 #ifdef 中。

答:

2赞 Murray Foxcroft 8/29/2019 #1

也把你的使用放在一个 #IF:

#IF !DEBUG
using MySpecialStuff 
#endif

public class MyClass
{
    static void Main()
    {
#IF !DEBUG
        var msc = new MySpecialClass(); 
#endif
    }   
}

或者,在声明中完全限定您需要的类。

public class MyClass
{
    static void Main()
    {
#IF !DEBUG
        var msc = new MySpecialStuff.MySpecialClass(); 
#endif
    }   
}