可能重复:
在C#中获取没有完整名称空间的类型名称
有没有人知道我们如何以一种简单的方式获取类的名称,就像Java可以通过什么方式一样class.getName()?
NB:是的,有一些类似于CreateInstance类类型的混乱解决方法,然后得到对象的名称,但我想要一个简单的方法.
编辑1:
实际上,我需要一个方法中的类名称X.同时,我不想放松类型安全,我不会允许其他开发人员将字符串传递给该方法.像这样的东西:
void X( ??? class) // --> don't know how
{
var className = get the name of class // --> which I don't know how
Console.WriteLine(className);
}
X(tblEmployee); //--> usage of X, where tblEmployee is a POCO class
Run Code Online (Sandbox Code Playgroud)
Agu*_*les 10
你的意思是,像这样?
typeof(YourClass).Name
Run Code Online (Sandbox Code Playgroud)
为了澄清,在.NET框架中有一个名为的类Type.此类有一个名为的属性Name,用于检索类的名称.
因此,要在编译时检索类的类型,您可以使用typeof.
var typeName = typeof(YourClass).Name
Run Code Online (Sandbox Code Playgroud)
如果您在运行时不知道类型,则可以使用该GetType()方法检索它.这对所有.NET对象都很常见.
Animal a = new Dog();
var typeName = a.GetType().Name;
Run Code Online (Sandbox Code Playgroud)
回答编辑1
您需要传递Type参数
void X(Type classType)
{
var className = classType.Name;
Console.WriteLine(className);
}
Run Code Online (Sandbox Code Playgroud)
打电话X应该是这样的
X(typeof(YourClass));
Run Code Online (Sandbox Code Playgroud)
要么
X(YourInstance.GetType());
Run Code Online (Sandbox Code Playgroud)