我需要检查类型之间是否存在隐式转换。对于内置类型,我可以创建一个包含相应可用类型的类型和列表的字典。但是对于自定义类型,这是不可能的,因为我不知道将检查什么代码。有没有通用的方法来做到这一点?
谢谢。
尝试这个。如果为隐式对话的自定义类型定义方法,您将通过“op_Implicit”名称找到它
foreach (MethodInfo mi in typeof(CustomType).GetMethods()) { if (mi.Name == "op_Implicit") { Console.WriteLine(mi.ReturnType.Name); } }
你试过IsAssignableFrom
吗?
Type type = typeof(MyClass);
type.IsAssignableFrom(typeof(MyOtherClass));