正在应用'==';运算符转换为泛型参数

本文关键字:泛型 参数 转换 运算符 应用 | 更新日期: 2023-09-27 17:50:23

可能重复:
运算符==不能应用于C#中的泛型类型吗?

我有一个DatabaseLookup{}类,其中参数T将由该类中的查找方法使用。在查找之前,我想看看T是否已经用之类的东西进行了查找

if (T == previousLookupObject) ...

这根本无法编译。是什么阻止我做这样一个简单的比较?

正在应用'==';运算符转换为泛型参数

T是类型参数。如果您的previousLookupObjectType的对象,则需要执行typeof(T) == previousLookupObject

如果previousLookupObjectT类型的变量,则需要有一个T的实际对象来将其与进行比较

如果要查明previousLookupObject是否属于T类型,则需要使用is运算符:if (previousLookupObject is T)

T是类型,previousLookupObject(我想(是对象实例。所以你把苹果比作桔子。试试这个:

if (previousLookupObject is T)
{
    ...    
}

请参阅以下链接:

可以';t运算符==是否应用于C#中的泛型类型?

c比较两个通用值

previousLookupObject是什么类型?泛型类型参数是类型,不能用作普通对象引用。