如何在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