为什么在单元测试中检查 System.Int32 的类型是否可分配给 INumber<> 的类型会返回 false?

ror*_*.ap 4 .net c# mstest .net-7.0

从控制台应用程序运行时,此语句将“x”设置为true

var x = 3.GetType().IsAssignableTo(typeof(INumber<>)); // x == true
Run Code Online (Sandbox Code Playgroud)

在单元测试中运行时相同的语句设置xfalse。为什么?

var x = 3.GetType().IsAssignableTo(typeof(INumber<>));

can*_*on7 5

这是.NET 6 中引入的错误,并在 .NET 8 中修复

正确的行为是未实例化的泛型不是AssignableTo

我想这是有道理的,因为你不能写INumber<> x = 3