Context:
Classes ValueTypes Interfaces Methods Iterators
![]() |
generic-argument conventionally has a single character upper case name such as T and U.
In this example, the main method finds and displays the greater and the smaller number from two ones. T is a generic argument to the Min method, which in this case is a static generic method. The Min method expects two parameters both of which should be of the same type as the generic parameter. The CompareTo method may be invoked since T is known to implement the IComparable interface.
class-id GenericMath.
method-id main static.
01 n1 binary-double.
01 n2 binary-double.
set n1 to 999
set n2 to 100
display n1 space n2
display Min[binary-double](n1 n2)
display Max[binary-double](n1 n2)
goback.
end method.
method-id Min using T static.
constraints.
constrain T implements type System.IComparable.
procedure division using by value item1 as T item2 as T
returning res as T.
if item1::CompareTo(item2) < 0
set res to item1
else
set res to item2
end-if
end method.
method-id Max using T static.
constraints.
constrain T implements type System.IComparable.
procedure division using by value item1 as T item2 as T
returning res as T.
if item1::CompareTo(item2) < 0
set res to item2
else
set res to item1
end-if
end method.
end class.