我需要检查类型之间是否存在隐式转换。对于内置类型,我可以创建一个字典,其中包含类型及其对应可用类型的列表。但是对于自定义类型,这是不可能的,因为我不知道将在哪个代码上进行检查。是否有通用方法来解决这个问题?
谢谢。
谢谢。
试试这个。如果为自定义类型定义了隐式转换的方法,您可以通过 "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));
long x = new short();
,但是typeof(long).IsAssignableFrom(typeof(short))
返回False! - Colonel Panic