Top Banner
ОПЕРАТОР WITH
16

Оператор With

Apr 14, 2017

Download

Education

Nick535
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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