首页 > 解决方案 > 如何获得具有友好名称(字符串)的类型(类型对象)?

问题描述

例如,我想要一个方法来获取typeof(int)from "int"typeof(List<int>)from "List<int>"typeof(Dictionary<string, int>)from"Dictionary<string,int>"等。

如果友好名称在调用上下文中不明确,则可以抛出异常或简单地返回 null。

我可以使用字典来存储所有内置友好类型的映射,但是手动映射每个具体的泛型类型太复杂了。我找不到一种方法来建立我可能需要的所有友好名称。

C# 中是否有一些“eval”方法,就像在某些脚本语言中一样?也就是说,我可以简单地typeof使用友好名称作为输入运行并获取Type对象引用作为返回值?

标签: c#

解决方案


您可以使用.GetType().Name简单地获取对象的类型。

T.GetType().Name // class name, no namespace
T.GetType().FullName // namespace and class name
T.GetType().Namespace // namespace, no class name

推荐阅读