我有一个DatabaseLookup {}类,其中参数T将由类中的查找方法使用。在查找之前,我想看看T是否已经用
之类的东西查找过了if (T == previousLookupObject) ...
根本不编译。什么阻止我做这样的简单比较?
答案 0 :(得分:16)
T
是类型参数。如果您的previousLookupObject
是Type
的对象,则需要执行typeof(T) == previousLookupObject
。
如果previousLookupObject
是T
类型的变量,则需要将T
的实际对象与其进行比较。
如果您想知道previousLookupObject
是否属于T
类型,则需要使用is
运算符:if (previousLookupObject is T)
。
答案 1 :(得分:8)
T
是类型,previousLookupObject
是(我想)一个对象实例。所以你要比较苹果和橘子。试试这个:
if (previousLookupObject is T)
{
...
}
答案 2 :(得分:1)
答案 3 :(得分:0)
previousLookupObject
是什么类型的?通用类型参数是类型,不能用作普通对象引用。