Ограничения на параметры обобщенных классов: различия между версиями
Материал из Вики проекта PascalABC.NET
Перейти к навигацииПерейти к поиску
Mikst (обсуждение | вклад) Нет описания правки |
Mikst (обсуждение | вклад) Нет описания правки |
||
Строка 1: | Строка 1: | ||
Секция where задает условия на параметры обобщенных подпрограмм и классов. | |||
В данном случае для вычисления минимального элемента массива его элементы должны удовлетворять интерфейсу System.IComparable, т.е. быть сравнимыми на "меньше". | |||
<source lang="Delphi">function MinElem<T>(a: array of T): T; | <source lang="Delphi">function MinElem<T>(a: array of T): T; | ||
where T: System.IComparable; | where T: System.IComparable; |
Текущая версия от 08:29, 16 января 2010
Секция 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.