#define DoTrace //演示 Conditional特性
using System;
using System.Diagnostics;
using System.Runtime.CompilerServices;//演示调用者信息特性 使用
namespace Chapter24ReflectionAndAttribute_244_AttributeAll
{
class Program
{
//Obsolete 演示,编译的时候会出现警告
[Obsolete("Use method SuperPrintOut")]
static void PrintOut(string str)
{
Console.WriteLine(str);
}
[Conditional("DoTrace")]
static void TraceMessage(string str)
{
Console.WriteLine(str);
}
//演示调用者信息特性
public static void MyTrace(string message, [CallerFilePath] string filename = "", [CallerLineNumber] int lineNumber = 0, [CallerMemberName] string callingMember = "")
{
Console.WriteLine("File: {0}",filename);
Console.WriteLine("Line: {0}",lineNumber);
Console.WriteLine("Called From:{0}",callingMember);
Console.WriteLine("Message: {0}",message);
}
static void Main(string[] args)
{
//Console.WriteLine("Hello World!");
//演示Obsolete 特性
PrintOut("Start of the main");
//演示 Conditional 特性
TraceMessage("Start of Main");
Console.WriteLine("Doing work in Main .");
TraceMessage("End of Main");
//演示调用者信息 特性
MyTrace("SimpleMessage");
}
}
}