我正在尝试在我的代码中实现IComparer
接口
public class GenericComparer : IComparer
{
public int Compare(T x, T y)
{
throw NotImplementedException;
}
}
但这会引发错误
错误10类型或命名空间名称' T'找不到(是你吗? 缺少using指令或程序集引用?)
我不知道,什么是wron。任何人都可以指出我做错了吗?
答案 0 :(得分:3)
您的GenericComparer不是通用的 - 您正在实施non-generic IComparer
interface。所以不是任何类型T
...你还没有声明类型参数T
,并且没有名为T
的命名类型。你可能想要:
public class GenericComparer<T> : IComparer<T>
或者,您需要将Compare
方法更改为:
public int Compare(object x, object y)
......但那将是一个非常奇怪的命名类。
答案 1 :(得分:1)
鉴于您的课程名称,我认为您打算实施通用 IComparer<T>
而不是非通用 IComparer
。< / p>
如果是这样,您需要使您的类具有通用性,并声明泛型类型参数T
public class GenericComparer<T> : IComparer<T>
{
public int Compare(T x, T y)
{
throw NotImplementedException;
}
}
答案 2 :(得分:0)
您可能打算实施IComparer<T>
:
public class GenericComparer<T> : IComparer<T>
{
public int Compare(T x, T y)
{
throw NotImplementedException;
}
}