我知道我可以使用预处理器指令C#
来启用/禁用某些代码部分的编译。
如果我在同一个文件中定义一个指令,它工作正常:
#define LINQ_ENABLED
using System;
using System.Collections.Generic;
#if LINQ_ENABLED
using System.Linq;
#endif
现在,我习惯于C++
将所有这些配置指令放在一个头文件中,并将其包含在我需要此类指令的所有文件中。
如果我做同样的C#
事情不起作用:
//Config.cs
#define LINQ_ENABLED
//MyClass.cs
#define LINQ_ENABLED
using System;
using System.Collections.Generic;
#if LINQ_ENABLED
using System.Linq;
#endif
我还尝试了以下方法,但似乎无法在命名空间内定义指令:
//Config.cs
namespace Conf{
#define LINQ_ENABLED
}
//MyClass.cs
#define LINQ_ENABLED
using System;
using System.Collections.Generic;
using Conf;
#if LINQ_ENABLED
using System.Linq;
#endif
- 我究竟做错了什么?
- 在不同文件中使用预处理器的正确方法是
C#
什么? - 有没有更好的方法来做到这一点?