Ограничения на параметры обобщенных классов

Материал из Вики проекта PascalABC.NET
Версия от 08:29, 16 января 2010; Mikst (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску

Секция where задает условия на параметры обобщенных подпрограмм и классов. В данном случае для вычисления минимального элемента массива его элементы должны удовлетворять интерфейсу System.IComparable, т.е. быть сравнимыми на "меньше".

function MinElem<T>(a: array of T): T;
where T: System.IComparable;
begin
  Result := a[0];
  for var i:=1 to a.Length-1 do
    if a[i].CompareTo(Result)<0 then
      Result := a[i];
end;

begin
  var a : array of integer := (2,1,8,4,7);
  writeln(MinElem(a));
  var ss : array of string := ('Иванов ','Астахов','Петров','Абдурахманов','Попов');
  writeln(MinElem(ss));
end.

Ссылки