本文主要是介绍关于#IF #ELSE #ENDIF,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
DISCUZ!NT中的一段代码 关于#IF #ELSE #ENDIF 的倒是可以理解,但是NET1是哪里冒出来的呢?
帮助文档上说可以使用#DEFINE
例子如下:
// preprocessor_if.cs
#define DEBUG
#define VC_V7
using System;
public class MyClass
{
static void Main()
{
#if (DEBUG && !VC_V7)
Console.WriteLine("DEBUG is defined");
#elif (!DEBUG && VC_V7)
Console.WriteLine("VC_V7 is defined");
#elif (DEBUG && VC_V7)
Console.WriteLine("DEBUG and VC_V7 are defined");
#else
Console.WriteLine("DEBUG and VC_V7 are not defined");
#endif
}
}
在CSDN上看到有个人问了这个问题
http://topic.csdn.net/u/20080718/14/ca8403a4-a3c5-43d5-8c6c-4d1666c51283.html
结论就是
在打开类库的属性->生成->常规中的"条件编译符号",这里定义了的话(比如这里定义MYTEST)
程序运行时
#if MYTEST
代码段一
#else
代码段二
#endif
就执行"代码段一"
如果没有定义,则执行"代码段二"
就是相当于自己定义了一个变量 当做TURE来看错。
一个测试例子
先要在 类库的属性->生成->常规中的"条件编译符号",这里定义Net ,运行下就知道了
在代码中 可以运行的代码颜色和不可以运行的代码颜色还是不一样的啦。
namespace Discuz.MyTest
{
class Program
{
static void Main(string[] args)
{
#if Net
Console.WriteLine("条件编译进入了这里Net");
Console.Read();
#else
Console.WriteLine("条件编译没有进入Net");
#endif
}
}
}
这篇关于关于#IF #ELSE #ENDIF的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!