C#有没有办法通过代码访问静态类的类名?
在一个静态类中,您不能使用关键字“this”,因此如果有,我不能调用C#有没有办法通过代码访问静态类的类名?,c#,C#,在一个静态类中,您不能使用关键字“this”,因此如果有,我不能调用this.GetType().GetFullName public static class My.Library.Class { public static string GetName() { } } 是否可以从GetName中调用任何东西来返回我的.Library.Class您可以通过以下方式获得预定类的类型: typeof(My.Library.Class).FullName typeof(M
this.GetType().GetFullName
public static class My.Library.Class
{
public static string GetName()
{
}
}
是否可以从GetName中调用任何东西来返回我的.Library.Class您可以通过以下方式获得预定类的类型:
typeof(My.Library.Class).FullName
typeof(My.Library.Class).FullName
如果需要“声明此方法的类”,则需要使用
MethodBase.GetCurrentMethod().DeclaringType.FullName
然而,这种方法是有可能的。您可以将此调用转移到类的静态构造函数/初始化器(它永远不会内联-log4net建议使用此方法):
应用[MethodImpl(MethodImplOptions.noinline)]
可能会有所帮助,但您确实应该这样做
HTH-Rob键入
.GetFullName()
;)浪费了宝贵的几秒钟-我想我现在对这个问题理解得好一点了是的,很多,但是Aen是第一个用MethodBase.GetCurrent()等回答的,所以仍然-1:-)@Adrian我真的不在乎要点,我只是想确保答案是有帮助的(对于所有来读这篇文章的人来说)。干杯。要点很好-我忘记了将类型
转换为字符串
+1以确保完整性的部分
typeof(My.Library.Class).FullName
MethodBase.GetCurrentMethod().DeclaringType.FullName