可能重复:
不能将运算符==应用于C#中的泛型类型?
我有一个DatabaseLookup {}类,其中参数T将由类中的查找方法使用.在查找之前,我想知道是否已经查找过T之类的东西
if (T == previousLookupObject) ...
Run Code Online (Sandbox Code Playgroud)
这根本不编译.什么阻止我做这样的简单比较?
Fem*_*ref 16
T是类型参数.如果你previousLookupObject是一个对象Type,你需要做typeof(T) == previousLookupObject.
如果previousLookupObject是类型的变量 T,则需要将实际对象T与其进行比较.
如果你想知道if是否previousLookupObject是类型T,你需要使用is运算符:if (previousLookupObject is T).
T是类型,previousLookupObject是(我想)一个对象实例.所以你要比较苹果和橘子.试试这个:
if (previousLookupObject is T)
{
...
}
Run Code Online (Sandbox Code Playgroud)