类型或命名空间名称'T'在实现iccomparer接口时找不到
本文关键字:iccomparer 实现 接口 找不到 命名空间 类型 | 更新日期: 2023-09-27 18:18:57
我正试图在我的代码中实现IComparer
接口
public class GenericComparer : IComparer
{
public int Compare(T x, T y)
{
throw NotImplementedException;
}
}
但是这会抛出一个错误
错误10无法找到类型或命名空间名称"T"缺少using指令或程序集引用?)
我不知道出了什么事。谁能指出我做错了什么吗?
您的GenericComparer不是泛型的-并且您正在实现非泛型IComparer
接口。所以不是任何类型的T
…您没有声明类型参数T
,也没有命名类型T
。您可能需要:
public class GenericComparer<T> : IComparer<T>
或者您需要将Compare
方法更改为:
public int Compare(object x, object y)
…但是它会是一个名字很奇怪的类
给定您的类名,我认为您的意思是实现泛型 IComparer<T>
而不是非泛型 IComparer
。
如果是,您需要使您的类泛型,并声明泛型类型参数T
public class GenericComparer<T> : IComparer<T>
{
public int Compare(T x, T y)
{
throw NotImplementedException;
}
}
您可能打算实现IComparer<T>
:
public class GenericComparer<T> : IComparer<T>
{
public int Compare(T x, T y)
{
throw NotImplementedException;
}
}