首页 > 代码库 > Conditional特性用法

Conditional特性用法

  说明:根据预处理标识符执行方法。Conditional 特性是 ConditionalAttribute 的别名,可应用于方法或属性类。相对于#if和#endif,更灵活更简洁和不易出错。
例如:

#define CONDITIONAusing System;using System.Collections.Generic;using System.Diagnostics;namespace ConsoleApplication2{    class Program    {        static void Main(string[] args)        {            Test1();            Test2();            Console.ReadKey();        }        [Conditional("CONDITIONA")]        public static void Test1()        {            Console.WriteLine("Test1");        }        public static void Test2()        {            Console.WriteLine("Test2");        }    }}

  这时Test1和Test2都将被执行,如果注释掉#define CONDITIONA,Test1将不会被执行。
  也可以同时定义多个Conditional特性,这时多个特性之间的关系为或:

class Program    {        static void Main(string[] args)        {            Test1();            Test2();            Console.ReadKey();        }        [Conditional("CONDITIONA"), Conditional("CONDITIONB")]        public static void Test1()        {            Console.WriteLine("Test1");        }        public static void Test2()        {            Console.WriteLine("Test2");        }    }
 如果要获得逻辑与效果,需要将所需执行代码全部放到Test2中执行:
class Program    {        static void Main(string[] args)        {            Test1();            Console.ReadKey();        }        [Conditional("CONDITIONA")]        public static void Test1()        {            Test2();        }        [Conditional("CONDITIONB")]        public static void Test2()        {            Console.WriteLine("Test1");            Console.WriteLine("Test2");        }    }