使用特性(Attribute)来忽略对指定方法的调用

特性

声明性标签:在运行时传递程序中的各种元素(类、方法、结构体、枚举……)的行为信息
放置在它所应用的元素前面的方括号([ ])

忽略对指定方法的调用

System.Diagnostics.Conditional(条件)

  • 若预处理指令“条件”不存在,则其修饰的方法不会被调用
#define CONDITION1
#define CONDITION2
using System;
using System.Diagnostics;

class Test
{
    static void Main()
    {
        Console.WriteLine("Calling Method1");
        Method1(3);
        Console.WriteLine("Calling Method2");
        Method2();

        Console.WriteLine("Using the Debug class");
        Debug.Listeners.Add(new ConsoleTraceListener());
        Debug.WriteLine("DEBUG is defined");

        Console.ReadKey();
    }

    // 若不存在预处理指令 “#define CONDITION1”,则该函数的所有调用将被忽略
    [Conditional("CONDITION1")]
    public static void Method1(int x)
    {
        Console.WriteLine("CONDITION1 is defined");
    }

    // 若这两个预处理指令均不存在,该函数的所有调用将被忽略
    [Conditional("CONDITION1"), Conditional("CONDITION2")]
    public static void Method2()
    {
        Console.WriteLine("CONDITION1 or CONDITION2 is defined");
    }

}

你可能感兴趣的:(使用特性(Attribute)来忽略对指定方法的调用)