下面的代碼段輸出「類型不一樣」。爲什麼?我知道使用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