所有指令都以 # 开头。它们不是真正的代码,不会被执行,而是在编译时决定哪些代码会被保留。
#define DEBUG_MODE // 定义一个暗号
using System;
class Program
{
static void Main()
{
#if DEBUG_MODE
Console.WriteLine("现在是切磋模式,点到为止。");
#else
Console.WriteLine("现在是决斗模式,不死不休!");
#endif
}
}
如果你把第一行的 #define DEBUG_MODE 删掉(或者注释掉),编译器就会自动选择 #else 下面的代码,前面的代码就像从来没存在过一样。
这招对代码逻辑没影响,纯粹是为了让代码整洁。可以把一大段代码折叠起来。
#region 华山剑法总纲
public void Move1() { }
public void Move2() { }
// ... 还有100招
#endregion
在 VS Code 里,你可以点击左边的小箭头,把这几百行代码“收”进去,眼不见心不烦。
#region!如果你把几千行代码堆在一起乱七八糟,连我都看不下去(虽然我更看重结果)。
编写一段代码:
#if VIP 判断是否是 VIP 用户。#define VIP,观察输出的变化。
#define VIP // 试着注释掉这一行
class Program {
static void Main() {
#if VIP
Console.WriteLine("欢迎大爷!");
#else
Console.WriteLine("去去去,一边去!");
#endif
}
}