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

时间:2013-08-15 10:30:28

标签: c# casting implicit

我需要检查类型之间是否存在隐式转换。对于内置类型,我可以创建一个字典,其中包含相应可用类型的类型和列表。但是对于自定义类型,这是不可能的,因为我不知道将检查哪些代码。有通用的方法吗?

感谢。

2 个答案:

答案 0 :(得分:8)

试试这个。如果对于隐式会话的自定义类型定义方法,您将通过“op_Implicit”name

找到它
foreach (MethodInfo mi in typeof(CustomType).GetMethods())
        {
            if (mi.Name == "op_Implicit")
            {
                Console.WriteLine(mi.ReturnType.Name);
            }
        }

答案 1 :(得分:-3)

您是否尝试过IsAssignableFrom

Type type = typeof(MyClass);
type.IsAssignableFrom(typeof(MyOtherClass));