【发布时间】:2016-04-21 13:37:08
【问题描述】:
我正在尝试学习预处理器指令,所以我做了一个这样的简单示例:
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
}
}
}
但不幸的是我得到了这个错误:
无法在文件中的第一个标记之后定义或取消定义预处理器符号
我从一本编程书中举这个例子,有什么问题?
更新(我的解决方案):
#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放在文件的开头。
-
这本书基本上是错的。是哪本书?名字和耻辱......(我真的希望它不是我的......)
-
@JonSkeet antoniopelleriti.it/page/libro-csharp
-
我注意到代码是无效的,因为从没有明确目标的静态方法调用实例方法,也是......
标签: c#