Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.06.12;
Скачать: CL | DM;

Вниз

функция или процедура   Найти похожие ветки 

 
cross   (2011-03-02 12:05) [0]

в приложении создается несколько экземпляров-объекта TAttrs.


TAttr = record
 Name: string;
 Val: string;
end;

TAttrs = class(TList<TAttr>)
end;


Для каждого нужно проверять наличие определенных атрибутов. Правильнее будет сделать функцию или процедуру.


function has_required_attrs(AAttrs: TAttrs; ARequired: array of string): Boolean;
var
 I: Integer;
begin
 Result := False;
 for I := Low(ARequired) to High(ARequired) do
   if not AAttrs.Exists(ARequired[I]) then
     Exit;
 Result := True;

end;

procedure chk_required_attrs(AAttrs: TAttrs; ARequired: TArray<string>);
var
 I: Integer;
begin
 for I := Low(ARequired) to High(ARequired) do

   Assert(AAttrs.Exists(ARequired[I]),
     Format("Отсутствует обязательный атрибут "%s"", [ARequired[I]]));

end;


 
И. Павел ©   (2011-03-02 12:10) [1]

has_required_attrs(AAttrs: TAttrs

Я бы сделал метод для TAttrs, проверяющий нужное свойство. Принимал бы он массив свойств, а возвращал - boolean (т.е. был функцией). Это бы позволило обрабатывать его результат снаружи, а не внутри самого метода.


 
Dennis I. Komarov ©   (2011-03-02 13:05) [2]

не нравятся мне стринги в записях...


 
clickmaker ©   (2011-03-02 13:12) [3]

а записи в стрингах? o)


 
Dennis I. Komarov ©   (2011-03-02 13:14) [4]

Смотря какие записи ;)


 
Anatoly Podgoretsky ©   (2011-03-02 13:21) [5]

> Dennis I. Komarov  (02.03.2011 13:14:04)  [4]

Смотря какие стринги.


 
Dennis I. Komarov ©   (2011-03-02 14:31) [6]


> Anatoly Podgoretsky ©   (02.03.11 13:21) [5]

Ну, это уже кому как...


 
_Юрий   (2011-03-02 19:06) [7]

Во первых, метод
Во вторых, ассерты могут быть отключены в финальной сборке (опциями компилера), и код с ассертами не сработает вообще.
Тут надо определиться - отрицательный результат - это штатная ситуация или исключительная.
Например, если проверка идет в цикле, и при ошибочном результате на итерации исключение ловится и цикл выполняется дальше, то исключения - плохой способ. Хотя бы с точки зрения производительности.
Если же все таки ситуация исключительная, то надо поднимать нормальное исключение, а не ассерт.


 
brother ©   (2011-03-03 11:52) [8]

> Смотря какие записи ;)

а что именно интересует?)



Страницы: 1 вся ветка

Текущий архив: 2011.06.12;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.008 c
15-1298541431
И. Павел
2011-02-24 12:57
2011.06.12
Как явно привести тип массива в яве?


15-1298410194
Юрий
2011-02-23 00:29
2011.06.12
С днем рождения ! 23 февраля 2011 среда


15-1298323795
Юрий
2011-02-22 00:29
2011.06.12
С днем рождения ! 22 февраля 2011 вторник


15-1298554260
JohnKorsh
2011-02-24 16:31
2011.06.12
Константы в Си.


2-1299086314
fynjy93
2011-03-02 20:18
2011.06.12
dbnavigator