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

Вниз

работа с элементом списка   Найти похожие ветки 

 
werewolf2   (2011-05-10 13:35) [0]

нужно получить из списка объект по индексу, если равен nil, создать и вернуть созданный. делаю так:

такой вариант работы с элементом списка корректный, или можно записать подругому.


function TForm1.GetLinkerItemDecoder(Index: Int): TLinkerItemDecoder;
begin

 Assert((Index >= 0) and (Index <= FLinkerItems.Count));

 if FLinkerItems[Index] = nil then
   FLinkerItems[Index] := TLinkerItemDecoder.Create(
     FConveyerLinker.Links[Index]);
 Result := FLinkerItems[Index];

end;


 
clickmaker ©   (2011-05-10 13:41) [1]

я бы так написал

Result := FLinkerItems[Index];
if Result = nil then begin
 Result := TLinkerItemDecoder.Create(FConveyerLinker.Links[Index]);
 FLinkerItems[Index] := Result;
end;


 
Омлет ©   (2011-05-10 15:42) [2]

> Index <= FLinkerItems.Count

Может всё-таки "Index < FLinkerItems.Count"?


 
KSergey ©   (2011-05-10 16:30) [3]

Выходит, FConveyerLinker.Links[] всегда такого же размера, что и FLinkerItems должен быть. Причем это не проверяется в отличии от FLinkerItems (хотя бы через Assert).
Вообще, если 2 списка строго одинакового размера параллельно ведется - я бы постарался в один список запихать структуру. А то мало ли - размерчики разъедутся и привет.

Ну это если придираться.

А какого типа FLinkerItems? если это обычный TList какой-нибудь - то Assert не нужен: внутри при доступе к элементам всегда проверяется корректность индекса.



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

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

Наверх




Память: 0.47 MB
Время: 0.007 c
15-1304428122
RGV
2011-05-03 17:08
2011.08.21
Кто из вас пользуется своим почтовым клиентом?


8-1215281172
Дмитрий Белькевич
2008-07-05 22:06
2011.08.21
Фильтры деинтерлейса.


13-1126851536
Антон773
2005-09-16 10:18
2011.08.21
перенос кода с win32 на .net


3-1262964863
serko
2010-01-08 18:34
2011.08.21
IBDATASET.recordcount не считает кол-во...


15-1304022600
Юрий
2011-04-29 00:30
2011.08.21
С днем рождения ! 29 апреля 2011 пятница