gpt4 book ai didi

c# - 预处理器指令不可能定义或取消定义预处理器

转载 作者:太空宇宙 更新时间:2023-11-03 19:00:31 25 4
gpt4 key购买 nike

我正在尝试学习预处理器指令,所以我做了一个像这样的简单示例:

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模式,但应该是 Release模式。我做错了什么?

最佳答案

正如 Neo 提到的,您可以在文件顶部定义它。

或者,如果您希望它是全局的,并且您使用的是 Visual Studio,则可以在项目属性中定义它(右键单击项目,选择“属性”,然后转到“构建”选项卡)。

该屏幕将允许您根据构建配置定义符号(因此您可以为调试build设置符号,并在切换配置时自动将其删除)。

如果您不使用 Visual Studio,您可以将条件符号传递给 MSBuild 或 csc(命令行构建或命令行 C# 编译器)。所有这些选项将使您能够在不更改源代码的情况下设置/取消设置符号。

关于c# - 预处理器指令不可能定义或取消定义预处理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36771337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com