1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
public struct KeyValuePair<X,Y>
{
public KeyValuePair (X x, Y y)
{ }
}
public interface IComparer<T>
{
int Compare (T x);
}
public class KeyValuePairComparer<K,V> : IComparer<KeyValuePair<K,V>>
{
public int Compare (KeyValuePair<K,V> a)
{
return 0;
}
}
public class TreeBag<T>
{
IComparer<T> comparer;
T item;
public TreeBag (IComparer<T> comparer, T item)
{
this.comparer = comparer;
this.item = item;
}
public int Find ()
{
return comparer.Compare (item);
}
}
public class X
{
public static void Main ()
{
KeyValuePair<int,int> pair = new KeyValuePair<int,int> (3, 89);
KeyValuePairComparer<int,int> comparer = new KeyValuePairComparer<int,int> ();
TreeBag<KeyValuePair<int,int>> bag = new TreeBag<KeyValuePair<int,int>> (comparer, pair);
bag.Find ();
}
}
|