Форум: "Прочее";
Текущий архив: 2011.06.12;
Скачать: [xml.tar.bz2];
Внизвложенные With Найти похожие ветки
← →
Очень злой (2011-02-25 13:04) [0]
with a do
try
...
with b do
try
...
SomeMethod;
...
finally
free;
end;
...
finally
free;
end
Метод SomeMethod имеется в обоих объектах (т.е. и в a и b)
Но в данном случае метод SomeMethod будет относиться к объекту a или b?
← →
Очень злой (2011-02-25 13:05) [1]Извиняюсь, не в ту конференцию запостил. Хотел в "начинающим"... :(
← →
KilkennyCat © (2011-02-25 13:10) [2]b
← →
clickmaker © (2011-02-25 13:10) [3]> метод SomeMethod будет относиться к объекту a или b?
b
лучше вообще таких конструкций избегать. Если есть неоднозначность
← →
KilkennyCat © (2011-02-25 13:12) [4]я бы вынес в отдельную функцию - читать будет легче, без неоднозначности.
← →
Anatoly Podgoretsky © (2011-02-25 13:38) [5]> Очень злой (25.02.2011 13:04:00) [0]
Гадаешь?
А хочешь не гадать? - Выкини with и будет тебе хорошо.
← →
Dennis I. Komarov © (2011-02-25 13:42) [6]
> Очень злой (25.02.11 13:04)
А так?with a, b, c do
try
...
SomeMethod;
:)
← →
clickmaker © (2011-02-25 13:50) [7]> А так?
> with a, b, c do
> try
> ...
> SomeMethod
все три одновременно
← →
KilkennyCat © (2011-02-25 13:50) [8]
> Dennis I. Komarov © (25.02.11 13:42) [6]
c
← →
Dennis I. Komarov © (2011-02-25 13:55) [9]Эмм, я как говорится, Вас...?
← →
Dennis I. Komarov © (2011-02-25 13:56) [10]И условия что у "с" есть SomeMethod не было...
← →
И. Павел © (2011-02-25 20:40) [11]Вот это извращения :) Я таких не видел даже в коде, который мне отдавали на переписывание. Кстати, если в результате доработки программы [0] в "a" появится свойство "b" с методом SomeMetod то будет вызываться именно он, и найти такой конфликт имен будет очень трудно.
← →
asail © (2011-02-25 21:40) [12]Вложенные with надо запретить. В УК прировнять к терроризму.
← →
KilkennyCat © (2011-02-25 21:54) [13]я бы ваще программистов на учет ставил.
← →
Яблокитай (2011-02-25 22:44) [14]Опять про Goto забыли ...
← →
Плохиш © (2011-02-26 02:02) [15]
> Но в данном случае метод SomeMethod будет относиться к объекту
> a или b?
А что, в справке это уже не пишут?
← →
KilkennyCat © (2011-02-26 02:03) [16]а что, справку уже читают? :)
← →
_Юрий (2011-02-26 11:27) [17]Особенно With доставляет тем, что в нем напрочь не работает инспектирование при дебаге.
А польза сомнительна - экономия нескольких секунд при наборе кода разве что, зато потом можно потерять больше времени.
Целесообразно разве что в самых простых случаях, когда отладка не потребуется, например присвоение полей из одной структуры в другую. А за два и больше - расстреливать на месте
← →
RWolf © (2011-02-26 11:39) [18]
> _Юрий (26.02.11 11:27) [17]
удобно же:
with TSomething.Create(…) do
try
…
finally
Free
end;
← →
asail © (2011-02-26 13:37) [19]
> RWolf © (26.02.11 11:39) [18]
Дык и так удобно:
var
so: TSomething;
begin
...
so := TSomething.Create(...);
try
...
finally
so.Free
end;
Один в один, только еще одну переменную ввести... Но, руки, надеюсь, от этого не отвалятся? :)
Зато, никакой неопределенности.
← →
clickmaker © (2011-02-26 13:59) [20]> удобно же:
>
> with TSomething.Create(…) do
> try
единственный раз, когда мне это было действительно удобно:class function TSomeDialog.Execute: boolean;
begin
with TSomeDialog.Create(Application) do begin
try
...
Result := (ShowModal = mrOk);
...
finally
Free;
end;
end;
end;
удобно тем, что диалог вызывается одной строчкой из любого места
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2011.06.12;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.003 c