你如何使用#define?

Mas*_*ase 18 c#

我想知道发送使用#define和#if语句的实例.我已经了解了一段时间,但从未将其纳入我的编码方式.这究竟是如何影响编译的?

#define是唯一决定编译时是否包含代码的东西吗?如果我将#define DEBUGme作为自定义符号,那么从编译中排除它的唯一方法是删除这个#define语句?

Eri*_*ins 13

在C##define宏中,像Bernard的一些例子一样,是不允许的.C#中唯一常用的#define/ #ifs用于添加可选的仅调试代码.例如:

        static void Main(string[] args)
        {
#if DEBUG
            //this only compiles if in DEBUG
            Console.WriteLine("DEBUG")
#endif 
#if !DEBUG
            //this only compiles if not in DEBUG
            Console.WriteLine("RELEASE")
#endif
            //This always compiles
            Console.ReadLine()
        }
Run Code Online (Sandbox Code Playgroud)


Mar*_*ade 9

#define用于定义编译时常量,您可以使用#if来包含或排除代码位.

#define USEFOREACH

#if USEFOREACH
    foreach(var item in items)
     {  
#else
    for(int i=0; i < items.Length; ++i)
     { var item = items[i];   //take item
#endif

       doSomethingWithItem(item);
     }
Run Code Online (Sandbox Code Playgroud)