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

Материал из Вики проекта PascalABC.NET
Перейти к: навигация, поиск

Секция 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.

Ссылки

Персональные инструменты