Alexey_Gawrilow
Advanced Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору kaz_av Цитата: А Side Effect ? Код должен быть понятным и сопровождаемым. Цитата: Код: If Assigned(FSomeFunc) And FSomeFunc(SomeParam..., OutObject) And OutObject.SomeFunc(...) Then | | Это не надо обосновывать. Это вполне нормальный код, при условии, что ничего кроме написанного не делается. В этом случае открываемый в then блок может оперировать переменной OutObject вполне безопасно. Но только в нем. В другом месте, опять по новой: Цитата: Код: If Assigned(FSomeFunc) And FSomeFunc(SomeParam..., OutObject) And OutObject.SomeFunc(...) Then | | Код: var OutIntf: IsomeIntf; .. If Supports(Ref, IsomeIntf, OutIntf) and OutIntf.SomeBooleanGetStateFunc{и ничего другого}(...) then | А вот если, делается что-то еще, то есть, функция (забыл термин), изменяет состояние системы, то при активном Short-Circuit Boolean Evaluation({$B}) пишем лесенкой - некуда деваться. Потому как локалное управление директивами компилятора, тоже грязно , без комментов - зачем это сделано. |