比较具有相同类型的对象评估为 false

Comparing objects with same type evaluates for false

我在 if 语句中有这段代码,它的计算结果为 false,但我不知道为什么

&& (typeof(TResponse).Equals(typeof(MediatorResponse)))

使用 等于 因为我打算通过参考进行比较

我试着把它们放在手表里,这是我的线索

typeof(TResponse) 似乎是 MediatorResponse'1typeof(MediatorResponse) 似乎是 MediatorResponse 这两个还是同一类型吗?

为什么 visual studio 把 1 放在另一个上?

C# 允许您拥有具有相同名称的不同类型(如果一个或多个泛型),并且泛型类型具有不同数量的泛型参数。比如下面都是不同的类型:

class Foo{}
class Foo<T>{}
class Foo<T1, T2>{}

后跟数字的反引号字符用于泛型类型以生成唯一名称,并指示该类型具有的泛型参数的数量。所以在上面的示例中,名称将是:

class Foo{}            // Name is Foo
class Foo<T>{}         // Name is Foo`1
class Foo<T1, T2>{}    // Name is Foo`2