我努力学习预处理指令,所以我做了一个简单的例子是这样的:预处理指令不可能定义或取消定义预处理
using System;
namespace learning
{
class Program
{
static void Main(string[] args)
{
#define DEBUG
test();
}
private void test()
{
#if DEBUG
Console.WriteLine("Debug mode");
#elif RELEASE
Console.WriteLine("Release mode");
#else
Console.WriteLine("Debug and release don't defined");
#endif
}
}
}
,但我遗憾的是这个错误:
Impossible to define or cancel defining the preprocessor symbols after the first token in the file
我从一本编程书籍中拿这个例子,有什么不对?
更新(我的溶液):
#define RELEASE
using System;
namespace learning
{
class Program
{
static void Main(string[] args)
{
#if DEBUG
Console.WriteLine("Debug mode");
#elif RELEASE
Console.WriteLine("Release mode");
#else
Console.WriteLine("Debug and release don't defined");
#endif
Console.ReadLine();
}
}
}
打印结果:Debug mode
,但应该是Release mode
。我做错了什么?
将#define DEBUG放在文件的开头。 – neo
这本书是错误的,基本上。它是哪本书?名字和耻辱...(我真的希望它不是我的...) –
@JonSkeet http://antoniopelleriti.it/page/libro-csharp – Dillinger