11using System ;
22using System . Collections . Generic ;
3+ using System . Diagnostics . Contracts ;
34
45namespace ReClassNET . Util
56{
67 public static class Utils
78 {
89 public static T Min < T , U > ( T item1 , T item2 , Func < T , U > keySelector ) where U : IComparable
910 {
11+ Contract . Requires ( keySelector != null ) ;
12+
1013 return Min ( item1 , item2 , keySelector , Comparer < U > . Default ) ;
1114 }
1215
1316 public static T Min < T , U > ( T item1 , T item2 , Func < T , U > keySelector , IComparer < U > comparer )
1417 {
18+ Contract . Requires ( keySelector != null ) ;
19+ Contract . Requires ( comparer != null ) ;
20+
1521 if ( comparer . Compare ( keySelector ( item1 ) , keySelector ( item2 ) ) < 0 )
1622 {
1723 return item1 ;
@@ -21,11 +27,16 @@ public static T Min<T, U>(T item1, T item2, Func<T, U> keySelector, IComparer<U>
2127
2228 public static T Max < T , U > ( T item1 , T item2 , Func < T , U > keySelector ) where U : IComparable
2329 {
30+ Contract . Requires ( keySelector != null ) ;
31+
2432 return Max ( item1 , item2 , keySelector , Comparer < U > . Default ) ;
2533 }
2634
2735 public static T Max < T , U > ( T item1 , T item2 , Func < T , U > keySelector , IComparer < U > comparer )
2836 {
37+ Contract . Requires ( keySelector != null ) ;
38+ Contract . Requires ( comparer != null ) ;
39+
2940 if ( comparer . Compare ( keySelector ( item1 ) , keySelector ( item2 ) ) > 0 )
3041 {
3142 return item1 ;
0 commit comments