如何检查类型之间是否存在隐式转换

本文关键字:存在 是否 转换 之间 类型 何检查 检查 | 更新日期: 2023-09-27 18:27:42

我需要检查类型之间是否存在隐式转换。对于内置类型,我可以创建一个带有类型和相应可用类型列表的字典。但对于自定义类型,这是不可能的,因为我不知道会在什么代码上检查它。有没有通用的方法可以做到这一点?

谢谢。

如何检查类型之间是否存在隐式转换

试试这个。如果对于隐式对话的自定义类型定义方法,您将通过"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));