我有一个这样的课程
public class BaseClass
{
public string Request { get; set;}
}
我有这样的课程:
public class ExtendClass : BaseClass
{
}
实际上,属性Request将始终使用ExtendClass的名称进行设置。所以它实际上是Request="ExtendClass"
我有许多扩展BaseClass的课程。我知道我可以将字符串传递给它,但是可以这样做吗?
答案 0 :(得分:7)
你可以使用object.GetType
,它总是会在层次结构的顶层返回类型(所以最后一个派生类):
public string Request
{
get
{
return this.GetType().Name;
}
}
答案 1 :(得分:2)
您有多种选择。例如,您可以使用反射:
public string Request { get {return this.GetType().Name; }}
或者你可以使用抽象属性使它更明确(这样你不仅可以指定类名):
public abstract class BaseClass
{
public abstract string Request { get; }
}
class ExtendClass : BaseClass
{
public override string Request { get {return "ExtendClass"; } }
}