Форум: "Начинающим";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];
Внизif Assigned(Self) then Result := FList else Result := EmptyList; Найти похожие ветки
← →
GuAV © (2005-12-31 14:10) [0]С наступающим, товарищи !
А вопрос такой: если существует много кода использования свойства объекта с предварительной проверкой объекта на неравенство nil, стоит ли вынести эту проверку в метод чтения св-ва ? Св-во возвращает TList, поэтому можно заранее создать пустой список для возвращения в этом случае...
← →
Leonid Troyanovsky © (2006-01-01 14:46) [1]
> GuAV © (31.12.05 14:10)
> А вопрос такой: если существует много кода использования
> свойства объекта с предварительной проверкой объекта на
> неравенство nil, стоит ли вынести эту проверку в метод чтения
> св-ва ? Св-во возвращает TList, поэтому можно заранее создать
> пустой список для возвращения в этом случае...
Вообще-то, в случае создания списка при создании объекта
проверок можно избежать.
Т.е., оный список будет существовать всегда.
--
Regards, LVT.
← →
GuAV © (2006-01-01 18:29) [2]
> Вообще-то, в случае создания списка при создании
>объекта
>проверок можно избежать.
> Т.е., оный список будет существовать всегда.
Это и так соблюдается.
Я видимо не ясно выразился.
Покажу на примере:
Имеем:proceudre MainForm.SomeEvent(Sender: TObject);
begin
if FObject <> nil then
with FObject.List do
...
end;
гдеproperty List: TList read FList;
Стоит ли делать так:proceudre MainForm.SomeEvent(Sender: TObject);
begin
with FObject.List do
...
end;
гдеproperty List: TList read GetList;
procedure TSomeObject.GetList
begin
if Assigned(Self) then
Result := FList
else
Result := EmptyList;
end;
?
← →
Leonid Troyanovsky © (2006-01-03 15:52) [3]
> GuAV © (01.01.06 18:29) [2]
> Стоит ли делать так:
> procedure TSomeObject.GetList
> begin
> if Assigned(Self) then
> Result := FList
> else
> Result := EmptyList;
> end;
Так, IMHO, выглядит пароноидально. Т.е., в любом случае,
пользование свойствами несозданного объекта не должно
быть безнаказанным.
С другой стороны, использование объектных ссылок должно
предусматривать if Assigned(..) в сочетании с к.л. реализацией
механизма Notification.
--
Regards, LVT.
← →
GuAV © (2006-01-03 19:31) [4]Ясно. Спасибо.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.04 c