I have MyClass<T>
.
然后我有这个string s = "MyClass<AnotherClass>";
。如何从字符串中获取 Types
?
一种方法(丑陋)是解析出“”并执行以下操作:
Type acType = Type.GetType("AnotherClass");
Type whatIwant = typeof (MyClass<>).MakeGenericType(acType);
但是有没有一种更干净的方法来获得最终类型而不需要任何解析等?
The 泛型的格式是名称、` 字符、类型参数的数量,后跟括号中以逗号分隔的类型列表:
Type.GetType("System.Collections.Generic.IEnumerable`1[System.String]");
我不确定是否有一种简单的方法可以将泛型的 C# 语法转换为 CLR 所需的字符串类型。我开始编写一个快速正则表达式来解析它,就像您在问题中提到的那样,但意识到除非您放弃将嵌套泛型作为类型参数的能力,否则解析将变得非常复杂。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)