如何从基类内部获得类的名称?

  • 本文关键字:基类 内部 c# reflection
  • 更新时间 :
  • 英文 :


我有一个基类BaseModel和一个子类SubModel。我想在BaseModel中定义一个函数,它将返回类的字符串名称。我有这个工作的BaseClass的实例,但如果我做一个SubModel实例,该函数仍然返回"BaseModel"。这是代码吗?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;
namespace ClassLibrary1
{
    public class BaseModel
    {
        public string GetModelName()
        {
            return MethodBase.GetCurrentMethod().ReflectedType.Name;
        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ClassLibrary1;
namespace ConsoleApplication1
{
    class SubModel : BaseModel
    {
    }
}

我想要这个电话:

SubModel test = new SubModel();
string name = test.GetModelName();

返回"SubModel"。这可能吗?

谢谢。

你可以这样做:

public class BaseModel
{
    public string GetModelName()
    {
        return this.GetType().Name;
    }
}
class SubModel : BaseModel
{
}
SubModel test = new SubModel();
string name = test.GetModelName();

这也是可能的:

string name = (test as BaseModel).GetModelName();
string name = ((BaseModel)test).GetModelName();
//both return "SubModel"

相关内容

  • 没有找到相关文章

最新更新