Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.22;
Скачать: 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 вся ветка

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

Наверх




Память: 0.48 MB
Время: 0.041 c
2-1136153627
mr.Evil
2006-01-02 01:13
2006.01.22
Как удалить запись из потомка TFileStream


14-1135511079
Ламерюга
2005-12-25 14:44
2006.01.22
Как узнать значение переменной хранящейся в другой форме!


14-1135758015
Pazitron_Brain
2005-12-28 11:20
2006.01.22
Почему некоторые ламеры?


1-1134687807
Батала
2005-12-16 02:03
2006.01.22
Как определить какая кнопка нажата (не путать с символами)?


5-1121781895
Destroyer
2005-07-19 18:04
2006.01.22
Создание кнопки с вертикальным текстом