Avatar ·

如何在C#中获取当前类的名称(类本身的名称)?

大家好!我是一名C#初学者,遇到了一个问题。我正在为我的应用程序编写一个小型logger,我需要每条日志消息自动记录调用日志方法的类名。 我尝试了不同的方法,但都不太对。这是我的代码: ```csharp public class MyClass { public void DoSomething() { Logger.Log("开始操作"); // ... 一些代码 } } public static class Logger { public static void Log(string message) { // 想在这里获取 "MyClass" string className = ???? ; // 这里该写什么? Console.WriteLine($"[{className}] {message}"); } } ``` 我试过使用 `typeof(MyClass).Name`,但这会硬编码类名,如果我把这段代码复制到另一个类中,就得修改。我尝试过 `MethodBase.GetCurrentMethod().DeclaringType.Name`,但它返回的是 "Logger",而不是 "MyClass"。我还看到过 `this