Delphi 2007 - новинки языка по сравнению с Delphi 7 (исходники)

Источник: NoNaMe
Codegear, перевод: alex_sporik

1. Директива inline - процедуры могут теперь быть маркированы как inline. В этом случае компилятор просто подставляет тело такой процедуры в точку вызова.

2. Перегрузка операторов (не путать с методами). Поясню - теперь вы можете написать свой оператор наподобие + или -.

type:, atr:,, title:Delphi 2007, новинки языка по сравнению с Delphi 7

3. Сlass Helpers - Это классы ассоциированные с каким либо классом и содержащем методы которые могут быть использованы при работе с основным классом. Это своеобразный способ расширить функциональность базового класса не прибегая к наследованию. Codegear не рекомендуют использовать этот путь для основного кодирования - а только как "быстрый" способ улучшить существующий код.

type:, atr:,, title:Delphi 2007, новинки языка по сравнению с Delphi 7

Зато теперь вы можете "улучшить" код какого нибудь компонента не переписывая его ;)

4. strict private - наконец то private стал приватным по настоящему. Когда вы описываете методы как приватные они все равно видны по крайней мере в рамках одного unit. То есть это отношение "friend" в терминах C++. Когда вы делаете метод strict private - это означает действительно приватный метод или свойство для класса и не не видим никому, даже в рамках unit.

5. strict protected - по образу и подобию п.4 - только такие методы будут видимы самому классу владельцу и его наследникам. И никакого friendship ;)

6. Записи с методами. Record теперь может иметь не только свойства но и методы (конструкторы в том числе), классовые свойства, методы, свойства а также вложенные типы.

type:, atr:,, title:Delphi 2007, новинки языка по сравнению с Delphi 7

7. Астрактные классы - Теперь не только методы но и сами классы могут быть абстрактными.

type:, atr:,, title:Delphi 2007, новинки языка по сравнению с Delphi 7

8. Sealed class - так называемые "запечатанные классы" - то есть классы от которых нельзя породить наследника.

type:, atr:,, title:Delphi 2007, новинки языка по сравнению с Delphi 7

9. Классовые константы

type:, atr:,, title:Delphi 2007, новинки языка по сравнению с Delphi 7

10. Типы внутри класса - класс может теперь содержать объявления типов которые используются только втрутри класса.

type:, atr:,, title:Delphi 2007, новинки языка по сравнению с Delphi 7

11. Классовые переменные и константы - теперь можно вот так:

type:, atr:,, title:Delphi 2007, новинки языка по сравнению с Delphi 7

12. Вложенные классы - сделаны для того чтобы концептуально родственные типы были близко и для того чтобы предотвратить возможные конфликты имен.

type:, atr:,, title:Delphi 2007, новинки языка по сравнению с Delphi 7

13. final methods - виртуальные методы которые вы перекрываете могут быть помечены как final, что сделает невозможным их дальнейшее перекрытие.

type:, atr:,, title:Delphi 2007, новинки языка по сравнению с Delphi 7

14. sealed classes - теперь классы могут быть sealed и в противоположность class abstract не могут имеить наследников.

15. Статические методы классов. - то что мы все так хотели. Теперь методы могут быть вызваны без создания экземпляра класса. В такие методы не передается указатель Self и разумеется такие методы не могут использовать даные экземпляра класса.

type:, atr:,, title:Delphi 2007, новинки языка по сравнению с Delphi 7

16. for-element-in-collection - по заявкам VB-шников. Теперь ваш любимый for each работает и в дельфи

type:, atr:,, title:Delphi 2007, новинки языка по сравнению с Delphi 7

17. Динамическая инициализация массивов

type:, atr:,, title:Delphi 2007, новинки языка по сравнению с Delphi 7

18. Директива experimental

type:, atr:,, title:Delphi 2007, новинки языка по сравнению с Delphi 7

19. Перегрузка свойств класса типа array

type:, atr:,, title:Delphi 2007, новинки языка по сравнению с Delphi 7

P.S. Заранее извиняюсь за крайне ужасное качество картинок. Фотографировал пленочной камерой с проектора :))

P.P.S. шутка :)))


Страница сайта http://185.71.96.61
Оригинал находится по адресу http://185.71.96.61/home.asp?artId=6763