所以我知道这有效:
class A
{
}
class B : A
{
}
[Test]
public void CanCast()
{
Assert.That(typeof(A).IsAssignableFrom(typeof(B)));
Assert.That(!typeof(B).IsAssignableFrom(typeof(A)));
}
但是,假设这两种类型是 Int32 和 Int64。
在运行时,我可以将 Int32 值转换为 Int64 变量,但反过来不行。如何在运行时检查这种类型的转换兼容性?(IsAssignableFrom 对此不起作用,它总是为 Int32 和 Int64 给出 false)
编辑:我不能简单地尝试转换,因为我没有这些类型的任何值,我问的是有两种类型 A 和 B,没有两个值 a 和 b 的假设场景。