Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#有没有办法通过代码访问静态类的类名?_C# - Fatal编程技术网

C#有没有办法通过代码访问静态类的类名?

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”,因此如果有,我不能调用
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