Aunque programo principalmente en Delphi que tiene una palabra clave with
(ya que Delphi es un derivado de Pascal), no utilizo with
. Como han dicho otros: ahorra un poco de tipeo, pero la lectura se hace más difícil.
En un caso como el código de abajo puede ser tentador utilizar 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;
Usando with
esto se parece a esto
with cxGrid.DBTableView.ViewData.Records do
begin
FieldByName('foo').Value = 1;
FieldByName('bar').Value = 2;
FieldByName('baz').Value = 3;
end;
yo prefiero usar una técnica diferente mediante la introducción de un extra variable apuntando a lo mismo with
apuntando hacia. De esta manera:
var lRecords: TDataSet;
lRecords := cxGrid.DBTableView.ViewData.Records;
lRecords.FieldByName('foo').Value = 1;
lRecords.FieldByName('bar').Value = 2;
lRecords.FieldByName('baz').Value = 3;
De esta manera no hay ninguna ambigüedad, se ahorra un poco en escribir y la intención del código es más claro que el uso de with
Huh. Javascript tiene la palabra clave 'with' y hace sustancialmente lo mismo; No me di cuenta de que tenía un pedigrí que se remontaba a Pascal (!). –
Tal vez proviene de Cobol o ADA, quién sabe ... –
Hay un en en Ada, pero no con ese significado. – AProgrammer