Несмотря на то, что я программирую в основном на Delphi с ключевым словом with
(поскольку Delphi является производным от Паскаля), я не использую with
. Как уже говорили другие: это немного экономит при наборе текста, но чтение затрудняется.
В случае, подобном приведенному ниже коду, может возникнуть соблазн использовать with
:
cxGrid.DBTableView.ViewData.Records.FieldByName('foo').Value = 1;
cxGrid.DBTableView.ViewData.Records.FieldByName('bar').Value = 2;
cxGrid.DBTableView.ViewData.Records.FieldByName('baz').Value = 3;
Используя with
это выглядит так
with cxGrid.DBTableView.ViewData.Records do
begin
FieldByName('foo').Value = 1;
FieldByName('bar').Value = 2;
FieldByName('baz').Value = 3;
end;
Я предпочитаю использовать другую технику, вводя дополнительную переменную, указывающую на то же самое, на что будет указывать with
. Как это:
var lRecords: TDataSet;
lRecords := cxGrid.DBTableView.ViewData.Records;
lRecords.FieldByName('foo').Value = 1;
lRecords.FieldByName('bar').Value = 2;
lRecords.FieldByName('baz').Value = 3;
Таким образом, нет никакой двусмысленности, вы экономите немного на наборе текста, и цель кода более ясна, чем использование with