在Android中,如果我需要获取当前类的名称,我可以执行以下操作:
private final _TAG = DummyActivity.this.getClass().getSimpleName();
这将返回" DummyActivity"
我想在C#WPF应用程序代码隐藏中做同样的事情。我如何获得当前课程的名称?
this.GetType().Name; //this works only on instances of a class
看起来唯一的选择就是用C#对它进行硬编码:
private const string _TAG = "DummyWindow";
答案 0 :(得分:5)
答案 1 :(得分:3)
实例将完全是"当前",否则这个概念没有多大意义。如果您只想要一个已知类型的名称typeof(Class).Name
。
答案 2 :(得分:3)
你可以在C#中这样做:
private static string _TAG = MethodBase.GetCurrentMethod().DeclaringType.Name;
这将起作用,因为初始化此字段实际上发生在静态构造函数中。即,MethodBase.GetCurrentMethod()
返回类的静态构造函数。
答案 3 :(得分:2)
尝试
typeof(DummyActivity).Name
答案 4 :(得分:1)
nameof(DummyActivity) == new DummyActivity().GetType().Name
答案 5 :(得分:0)
在C#6中完全相同的陈述:
private static readonly string _TAG = nameof(DummyActivity);