だから私はこれがうまくいくことを知っています:
class A
{
}
class B : A
{
}
[Test]
public void CanCast()
{
Assert.That(typeof(A).IsAssignableFrom(typeof(B)));
Assert.That(!typeof(B).IsAssignableFrom(typeof(A)));
}
ただし、これら2つのタイプがInt32とInt64であったとしましょう。
実行時に、Int32値をInt64変数にキャストできますが、その逆はできません。実行時にこの種のキャスト互換性を確認するにはどうすればよいですか?(IsAssignableFromはこれでは機能しません。これは、Int32およびInt64では常にfalseになります)
編集:私はそれらのタイプの値を持っていないので、単純にキャストを試みることはできません。私は2つのタイプAとBを持ち、2つの値aとbを持たないという架空のシナリオを求めています。