C# 获取当前类名

C# 获取当前类名,c#,wpf,C#,Wpf,在Android中,如果我需要获取当前类的名称,我可以执行以下操作: private final _TAG = DummyActivity.this.getClass().getSimpleName(); 这将使我的活动恢复正常 我想在C WPF应用程序代码隐藏中做同样的事情。如何获取当前类的名称 this.GetType().Name; //this works only on instances of a class 看起来唯一的选择是用C硬编码,如下所示: private const

在Android中,如果我需要获取当前类的名称,我可以执行以下操作:

private final _TAG = DummyActivity.this.getClass().getSimpleName();
这将使我的活动恢复正常

我想在C WPF应用程序代码隐藏中做同样的事情。如何获取当前类的名称

this.GetType().Name; //this works only on instances of a class 
看起来唯一的选择是用C硬编码,如下所示:

private const string _TAG = "DummyWindow";
一个实例应该是最新的,否则这个概念就没有多大意义。如果您只需要已知类型的名称,即typeofClass.name。

实例就是当前的,否则这个概念就没有多大意义。如果您只需要已知类型的名称,则应为typeofClass.name。

试试

typeof(DummyActivity).Name
试一试


您可以使用以下选项之一:

一,。typeofT.Name


二,。nameofT

您可以使用以下选项之一:

一,。typeofT.Name


二,。nameofT

您可以在C中这样做:

private static string _TAG = MethodBase.GetCurrentMethod().DeclaringType.Name;

这将起作用,因为初始化此字段实际上发生在静态构造函数中。也就是说,MethodBase.GetCurrentMethod返回类的静态构造函数。

在C中可以这样做:

private static string _TAG = MethodBase.GetCurrentMethod().DeclaringType.Name;

这将起作用,因为初始化此字段实际上发生在静态构造函数中。例如,MethodBase.GetCurrentMethod返回类的静态构造函数。

与C 6中的语句完全相同:

private static readonly string _TAG = nameof(DummyActivity);

C 6中完全相同的语句:

private static readonly string _TAG = nameof(DummyActivity);


请参见:请注意,标记副本的问题比这更具体,询问编译时不可用的信息。然而,这里有许多答案,其中几个也适用于这里。需要注意的是,虽然标记的重复问题假定在静态基类方法中,它们可以判断是否通过派生类调用它们,但事实并非如此。您所能做的最好的事情就是找到声明类的类型,这就是这里要问的问题,并且在副本中有相应的答案。请参见:注意,标记的副本的问题比这更具体,询问编译时不可用的信息。然而,这里有许多答案,其中几个也适用于这里。需要注意的是,虽然标记的重复问题假定在静态基类方法中,它们可以判断是否通过派生类调用它们,但事实并非如此。您所能做的最好的事情就是找到声明类的类型,这就是这里要问的问题,在重复的地址中有答案。但是typeofClass.Name的结果不能分配给constant@dbnex14:你到底为什么要把它赋给常数?好吧,因为您不使用全名,所以我想您可以使用类的名称。@dbnex14:另外,您可以将const替换为readonly,您将能够用它做更多的事情。它不再需要是编译时常量。但不能将typeofClass.Name的结果分配给constant@dbnex14:你到底为什么要把它赋给常数?好吧,因为您不使用全名,所以我想您可以使用类的名称。@dbnex14:另外,您可以将const替换为readonly,您将能够用它做更多的事情。它将不再需要是编译时常量。nameof仅在C 6.0中受支持nameof仅在C 6.0中受支持此问题与。假设那里还没有答案提到操作员的名字,你应该在那里发布你的答案,并投票结束这个问题,作为另一个问题的重复,而不是把你的答案放在这里。坦白地说,你的答案无论如何会在另一个问题中得到更多的关注;作为这样一个常见的副本,它的投票率很高,通过搜索将更容易找到。@PeterDuniho谢谢,可以@PeterDuniho:这个问题提到类型未知,而nameof只适用于已知类型。@PeterDuniho我同意H.B.,我的答案不适用于你发布的链接。这有点重复…@H.B.:的确,另一个问题的答案比这个问题所要求的更广泛。但我仍然认为它是重复的。这基本上是同一个问题。在某些情况下,编译时语义就足够了。另一个问题确实包括了解决这个问题的答案。这个问题是一个重复的问题。假设那里还没有答案提到操作员的名字,你应该在那里发布你的答案,并投票结束这个问题,作为另一个问题的重复,而不是把你的答案放在这里。坦白地说,你的答案无论如何会在另一个问题中得到更多的关注;作为这样一个常见的副本,它的投票率很高,通过搜索将更容易找到。@PeterDuniho谢谢,可以@PeterDuniho:这个问题提到类型未知,而nameof只适用于已知类型。@PeterDuniho我同意H.B.,我的答案不适用于你发布的链接。这有点重复…@H.B.:的确,另一个问题的答案比这个问题所要求的更广泛。但我仍然认为它是重复的。这是基本的
我问了同样的问题。在某些情况下,编译时语义就足够了。另一个问题确实包括了解决这个问题的答案。非常感谢。这也行得通。但我接受了H.B.的回答,因为他先回答了,他的解决方案也很有效。非常感谢。这也行得通。但我接受了H.B.的回答,因为他先回答,他的解决方案也有效。