Вниз
Скачать: CL | DM;

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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.032 c
4-1131518233
ART2005
2005-11-09 09:37
2006.01.22
Работа с запущенным процессом


11-1117927273
rofl
2005-06-05 03:21
2006.01.22
Kol Memo: strange output on Items[] if item is just one byte


14-1135888048
Andy BitOff
2005-12-29 23:27
2006.01.22
Да-а-а. Нельзя объять необъятное :( А жаль.


14-1135978840
Sergey Masloff
2005-12-31 00:40
2006.01.22
Оказывается сегодня уже 31


2-1136561798
Dot
2006-01-06 18:36
2006.01.22
найти и удалить текст




   Наверх