下面的代码段输出“类型不一样”。为什么?我知道使用interfaceOnMyType.GetGenericTypeDefinition()
可以解决问题,但为什么我必须这样做呢?通用类型不等于
class Program
{
static void Main(string[] args)
{
var myType = typeof(Baz<>);
var interfaceOnMyType = myType.GetInterfaces().SingleOrDefault();
var exactType = typeof(IBar<>);
if (exactType == interfaceOnMyType)
{
Console.WriteLine("The types ARE the same.");
}
else
{
Console.WriteLine("The types ARE NOT the same.");
}
Console.ReadLine();
}
}
interface IBar<T>
{
}
class Baz<T> : IBar<T>
{
}
不,他们是一样的 - 试试吧。 – 2009-02-04 14:45:12