Если вам это нужно в производных классах, вы можете поместить этот код в базовый класс:
protected string GetThisClassName() { return this.GetType().Name; }
Затем вы можете получить имя в производном классе. Возвращает имя производного класса. Конечно, при использовании нового ключевого слова "nameof" не будет необходимости, как этот сорт действует.
Кроме того, вы можете определить это:
public static class Extension
{
public static string NameOf(this object o)
{
return o.GetType().Name;
}
}
А потом используйте вот так:
public class MyProgram
{
string thisClassName;
public MyProgram()
{
this.thisClassName = this.NameOf();
}
}