Оператор with

16
ОПЕРАТОР WITH

Upload: nick535

Post on 14-Apr-2017

611 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Оператор With

ОПЕРАТОР WITH

Page 2: Оператор With

ОПЕРАТОР WITH

Подготовил: Гордаш Дима

Page 3: Оператор With

Оператор with позволяет сократить обращение к полям

записи, а также к полям, методам и свойствам объекта.

Он имеет вид:

with имя записи или объекта do оператор

или

with список имен do оператор

Page 4: Оператор With

Всюду внутри оператора можно опускать имя записи при обращении к полю указанной записи или имя

объекта при обращении к полю, методу или свойству указанного объекта. Например, пусть описана

переменная:

var   DateOfBirthday = record    Day: Integer;    Month: Integer;    Year: Integer;  end;

Page 5: Оператор With

Тогда присваивание значений ее полям без использования оператора with имеет

вид:

Page 6: Оператор With

Тогда присваивание значений ее полям без использования оператора with имеет

вид:

DateOfBirthday.Day := 23;DateOfBirthday.Month := 2;DateOfBirthday.Year := 1997;

Page 7: Оператор With

Использование оператора with позволяет сократить предыдущую

запись:

Page 8: Оператор With

Использование оператора with позволяет сократить предыдущую

запись:

with DateOfBirthday dobegin  Day := 23;  Month := 2;  Year := 1997;end;

Page 9: Оператор With

Если внешняя переменная имеет то же имя, что и поле (метод, свойство), то предпочтение

отдается полю (методу, свойству). При наличии вложенных операторов with вначале

предпринимается попытка рассматривать переменную как поле записи или объекта самого внутреннего оператора with, затем

непосредственно объемлющего его оператора with и т.д. Если оператор with содержит список

объектов, то они рассматривается справа налево.

Page 10: Оператор With

Например, если имеются описания:

Page 11: Оператор With

Например, если имеются описания:

var   x,y,z: integer;  a: record       x,y: integer;     end;  b: record       x: integer;     end;

Page 12: Оператор With

то фрагмент программы

Page 13: Оператор With

то фрагмент программы

with a,b dobegin  x := 1;   y := 2;  z := 3;  end;

Page 14: Оператор With

то фрагмент программы

with a,b dobegin  x := 1;   y := 2;  z := 3;  end;

эквивалентен фрагменту

Page 15: Оператор With

то фрагмент программы

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;

Page 16: Оператор With