using System.Runtime.CompilerServices; Test(); void Test(){ TraceMessage("HelloWorld"); //(1) TraceMessage("HelloWorld"); //(2) } void TraceMessage(string message, [CallerMemberName] string memberName = "", [CallerFilePath] string sourceFilePath = "", [CallerLineNumber] int sourceLineNumber = 0) { Console.WriteLine("message: " + message); Console.WriteLine("member name: " + memberName); Console.WriteLine("source file path: " + sourceFilePath); Console.WriteLine("source line number: " + sourceLineNumber); } // 同步 // Console.WriteLine("调用 DoSomethingSync 之前"); // DoSomethingSync(); // Console.WriteLine("调用 DoSomethingSync 之后"); // void DoSomethingSync(){ // Thread.Sleep(1000); // Console.WriteLine("等我一秒钟"); // } // 异步 // Console.WriteLine("调用 DoSomethingAsync 之前"); // Task task = DoSomethingAsync(); // Console.WriteLine("调用 DoSomethingAsync 之后"); // await task; // async Task DoSomethingAsync(){ // Task delay = Task.Delay(1000); // await delay; // Console.WriteLine("等我一秒钟"); // }