Conditional特性用法

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

#define CONDITIONA

using 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");
        }
    }

原文地址:https://www.cnblogs.com/infly123/p/3806053.html