我有一个基类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
{
}
}
Run Code Online (Sandbox Code Playgroud)
我想要这个电话:
SubModel test = new SubModel();
string name = test.GetModelName();
Run Code Online (Sandbox Code Playgroud)
要返回"SubModel".这可能吗?
谢谢.
你可以这样做:
public class BaseModel
{
public string GetModelName()
{
return this.GetType().Name;
}
}
class SubModel : BaseModel
{
}
SubModel test = new SubModel();
string name = test.GetModelName();
Run Code Online (Sandbox Code Playgroud)
这也是可能的:
string name = (test as BaseModel).GetModelName();
string name = ((BaseModel)test).GetModelName();
//both return "SubModel"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
130 次 |
| 最近记录: |