public class Base
{
public string getClassName()
{
return this.GetType().Name;
}
}
на самом деле, you don't need to create a method getClassName() just to get the type-name
. Вы можете вызвать GetType () для любого объекта .Net, и вы получите метаинформацию типа.
Вы также можете сделать это так,
public class Base
{
}
public class Subclass : Base
{
}
//In your client-code
Subclass subclass = new Subclass();
string className = subclass.GetType().Name;
EDIT
Более того, если вам действительно необходимо определить getClassName () в любом случае, я настоятельно рекомендую сделать его свойством [в соответствии с рекомендациями по проектированию структуры .net Framework), поскольку поведение getClassName () не является динамическим он всегда будет возвращать одно и то же значение каждый раз, когда вы его вызываете.
public class Base
{
public string ClassName
{
get
{
return this.GetType().Name;
}
}
}
EDIT2
Оптимизированная версия После прочтения комментария от Криса.
public class Base
{
private string className;
public string ClassName
{
get
{
if(string.IsNullOrEmpty(className))
className = this.GetType().Name;
return className;
}
}
}