W Cat - Описание языка PascalABC.NET

Здесь есть возможность читать онлайн «W Cat - Описание языка PascalABC.NET» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Программирование, Детская образовательная литература, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Описание языка PascalABC.NET: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Описание языка PascalABC.NET»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

PascalABC.NET — это язык программирования Паскаль нового поколения, включающий классический Паскаль, большинство возможностей языка Delphi, а также ряд собственных расширений. Он реализован на платформе Microsoft.NET и содержит все современные языковые средства: классы, перегрузку операций, интерфейсы, обработку исключений, обобщенные классы и подпрограммы, сборку мусора, лямбда-выражения, средства параллельного программирования.
PascalABC.NET является мультипарадигменным языком: на нем можно программировать в структурном, объектно-ориентированном и функциональном стилях.
PascalABC.NET — это также простая и мощная интегрированная среда разработки, поддерживающая технологию IntelliSense, содержащая средства автоформатирования, встроенный отладчик и встроенный дизайнер форм.

Описание языка PascalABC.NET — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Описание языка PascalABC.NET», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

functiongetProp: тип;

proceduresetProp(v: тип);

Обычно функция чтения и процедура записи описываются в приватной секции класса. Они могут быть виртуальными, в этом случае их уместно описывать в защищенной секции класса.

Вместо имени функции чтения и имени процедуры записи может фигурировать имя поля, с которым данное свойство связано. Любая из секций readили writeможет быть опущена, в этом случае мы получаем свойство с доступом только на запись или только на чтение.

Например:

type

Person = class

private

nm: string;

ag: integer;

proceduresetAge(a: integer);

begin

ifa>=0 then

ag := a

else raisenew Exception('Возраст не может быть отрицательным');

end;

functiongetId: string;

begin

Result := nm + ag.ToString;

end;

public

...

propertyAge: integer readаg writesetAge;

propertyName: string readnm;

propertyId: string readgetId;

end;

varp: Person;

p := new Person('Иванов',20);

p.Age := -3; // генерируется исключение

vari: integer := p.Age;

writeln(p.Id);

Всякий раз, когда мы присваиваем свойству Age новое значение, вызывается процедура setAge с соответствующим параметром. Всякий раз, когда мы считываем значение свойства Age, происходит обращение к полю ag. Поле nm доступно только на чтение. Наконец, свойство Id осуществляет доступ на чтение к информации, находящейся в двух полях.

Обычно для доступа к полю на чтение в секции readсвойства указывается именно поле, так как обычно при чтении поля никаких дополнительных действий производить не требуется.

Свойства не могут передаваться по ссылке в процедуры и функции. Например, следующий код ошибочен:

Inc(p.Age); // ошибка!

Если требуется обработать значение свойства, передав его по ссылке, то надо воспользоваться вспомогательной переменной:

a := p.Age;

Inc(a);

p.Age := a;

Однако, свойства соответствующих типов можно использовать в левой части операций присваивания += -= *= /=:

p.Age += 1;

Свойства очень удобны при работе с визуальными объектами, поскольку позволяют автоматически перерисовывать объект, если изменить какие-либо его визуальные характеристики. Например, если создана кнопка b1 типа Button, то для визуального изменения ее ширины достаточно присвоить значение ее свойству Width:

b1.Width := 100;

Процедура для записи этого свойства в приватное поле fwidth будет выглядеть примерно так:

procedureSetWidth(w: integer);

begin

if(w>0) and(w<>fwidth) then

begin

fwidth := w;

код перерисовки кнопки

end

end;

Следует обратить внимание на вторую часть условия в операторе if: w<>fwidth. Добавление этой проверки позволяет избежать лишней перерисовки кнопки в случае, если ее ширина не меняется.

Индексные свойства

Индексные свойства ведут себя аналогично полям-массивам и используются, как правило, для доступа к элементам контейнеров. Как и при использовании обычных свойств, при использовании индексных свойств могут попутно выполняться некоторые действия.

Индексное свойство описывается в классе следующим образом:

propertyProp[описание индексов]: тип readимя функции чтения writeимя процедуры записи;

В простейшем случае одного индекса описание индексного свойства выглядит так:

propertyProp[ind: тип индекса]: тип readимя функции чтения writeимя процедуры записи;

В этом случае функция чтения и процедура записи должны быть методами этого класса и иметь следующий вид:

functionGetProp(ind: тип индекса): тип;

procedureSetProp(ind: тип индекса; v: тип);

Всякий раз, когда мы для объекта a, содержащего свойство Prop, выполняем присваивание a.Prop[ind] := value, вызывается процедура SetProp(ind,value), а когда считываем значение a.Prop[ind], вызывается функция GetProp(ind).

Индексное свойство, после которого добавлено ключевое слово defaultс последующей ;, называется индексным свойством по умолчанию и позволяет пользоваться объектами класса как массивами, т.е. использовать запись a[ind] вместо a.Prop[ind].

Принципиальное отличие индексных свойств от полей-массивов состоит в том, что тип индекса может быть произвольным (в частности, строковым). Это позволяет легко реализовать так называемые ассоциативные массивы, элементы которых индексируются строками.

В следующем примере индексное свойство используется для закрашивания/стирания клеток шахматной доски в графическом режиме.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Описание языка PascalABC.NET»

Представляем Вашему вниманию похожие книги на «Описание языка PascalABC.NET» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Catie Disabato - The Ghost Network
Catie Disabato
Отзывы о книге «Описание языка PascalABC.NET»

Обсуждение, отзывы о книге «Описание языка PascalABC.NET» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x