//#define Istest //定义一个宏

using System;
using System.Diagnostics;

namespace Contional特性//禁用方法
{
class Program
{
[Conditional("IsTest")]//宏被定义时,方法才可被调用(方法仍会被编译放入程序集当中)
static void Text1()
{
Console.WriteLine("Text1");
}

    static void Text2()
    {
        Console.WriteLine("Text2");
    }

//调用者信息特性,DebuggerStepThrough特性
[DebuggerStepThrough]//可以跳过Debugger的单步调试 调试时略过该方法(确定该方法无错误是可以使用)
static void PrintOut(string str,
[CallerFilePath]string fileName="",[CallerLineNumber]int lineNumber=0,[CallerMemberName]string methodName="")
{
Console.WriteLine(str);
Console.WriteLine(fileName);//调用者文件路径
Console.WriteLine(lineNumber);//调用行
Console.WriteLine(methodName);//调用方法名
}

    static void Main(string[] args)
    {
        Text1();
        Text1();
        Text2();

        PrintOut("123");//断点
    }
}

}