Форум: "Начинающим";
Текущий архив: 2011.06.12;
Скачать: [xml.tar.bz2];
Внизфункция или процедура Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.005 c