很抱歉,如果我的问题措辞不好,但正是因为我不知道如何说出我无法轻易在Google上搜索此问题。
基本上我只想组合这两个函数,但是在参数内部找不到泛型的通用示例?我怎么称呼参数的括号区域?类型说明符是一个真正的术语吗?
无论如何我想将它们合并为一个需要两个keyvaluepair<int, T>
的函数,但我似乎无法使语法正确。
public class BinarySearchComparers:IComparer<KeyValuePair<int, string>>, IComparer<KeyValuePair<int, byte>>
{
public int Compare(KeyValuePair<int, string> x, KeyValuePair<int, string> y)
{
return x.Key.CompareTo(y.Key);
}
public int Compare(KeyValuePair<int, byte> x, KeyValuePair<int, byte> y)
{
return x.Key.CompareTo(y.Key);
}
}
答案 0 :(得分:0)
public class BinarySearchComparers<T> : IComparer<KeyValuePair<int, T>> // Declares a generic type
{
public int Compare(KeyValuePair<int, T> x, KeyValuePair<int, T> y)
{
return x.Key.CompareTo(y.Key);
}
}
这是你想要的吗?
鉴于Chris Sinclair对您的问题的理解,解决方案可能是:
public class BinarySearchComparers<U, T> : IComparer<KeyValuePair<U, T>> // Declares a generic type
where U : IComparable<U> // Restricts the type U to implémentations of IComparable<U> (necessary to call CompareTo)
{
public int Compare(KeyValuePair<U, T> x, KeyValuePair<U, T> y)
{
return x.Key.CompareTo(y.Key);
}
}