ОПЕРАТОР WITH
ОПЕРАТОР WITH
ОПЕРАТОР WITH
Подготовил: Гордаш Дима
Оператор with позволяет сократить обращение к полям
записи, а также к полям, методам и свойствам объекта.
Он имеет вид:
with имя записи или объекта do оператор
или
with список имен do оператор
Всюду внутри оператора можно опускать имя записи при обращении к полю указанной записи или имя
объекта при обращении к полю, методу или свойству указанного объекта. Например, пусть описана
переменная:
var DateOfBirthday = record Day: Integer; Month: Integer; Year: Integer; end;
Тогда присваивание значений ее полям без использования оператора with имеет
вид:
Тогда присваивание значений ее полям без использования оператора with имеет
вид:
DateOfBirthday.Day := 23;DateOfBirthday.Month := 2;DateOfBirthday.Year := 1997;
Использование оператора with позволяет сократить предыдущую
запись:
Использование оператора with позволяет сократить предыдущую
запись:
with DateOfBirthday dobegin Day := 23; Month := 2; Year := 1997;end;
Если внешняя переменная имеет то же имя, что и поле (метод, свойство), то предпочтение
отдается полю (методу, свойству). При наличии вложенных операторов with вначале
предпринимается попытка рассматривать переменную как поле записи или объекта самого внутреннего оператора with, затем
непосредственно объемлющего его оператора with и т.д. Если оператор with содержит список
объектов, то они рассматривается справа налево.
Например, если имеются описания:
Например, если имеются описания:
var x,y,z: integer; a: record x,y: integer; end; b: record x: integer; end;
то фрагмент программы
то фрагмент программы
with a,b dobegin x := 1; y := 2; z := 3; end;
то фрагмент программы
with a,b dobegin x := 1; y := 2; z := 3; end;
эквивалентен фрагменту
то фрагмент программы
with a,b dobegin x := 1; y := 2; z := 3; end;
эквивалентен фрагменту
with a do with b do begin x := 1; y := 2; z := 3; end;а также фрагменту
b.x:=1; a.y:=2;z:=3;