9. Использование uses для подключения пространств имен .NET (реализовано в Delphi Prism).
10. Вид доступа internal (наряду с public, private, protected).
11. Инициализация переменных: var a: integer := 1;
12. Инициализация переменных: var a := 1;
13. Объявление локальных переменных в блоке.
14. Объявление параметра цикла в заголовке цикла: for var i := 1 to 10 do, foreach var x in a do.
15. Оператор lock, обеспечивающий синхронизацию потоков.
16. Методы в записях.
17. Инициализаторы полей в классах и записях.
18. Обобщенные классы (generics).
19. Реализованы типизированные файлы (в отличие от Delphi Prism, где они убраны).
20. Упрощенный синтаксис модулей.
21. Описание методов внутри интерфейса класса или записи.
22. Реализация записью интерфейса.
23. Методы расширения.
24. Лямбда-выражения.
1. Только сокращенное вычисление логических выражений.
2. Другой синтаксис foreach.
3. Интерфейсы interface в стиле .NET.
4. Другой синтаксис перегрузки операций.
5. Статические методы классов вместо классовых методов. Отсутствие типа TClass.
6. Деструкторы оставлены лишь для совместимости и не выполняют никаких действий.
7. Тип object - синоним System.Object.
8. Тип exception - синоним System.Exception.
9. Индексация string с 1, директива переключения на индексацию с 0.
10. Процедура write выводит любые типы.
11. Структурная эквивалентность типов для процедурных переменных, динамических массивов, типизированных указателей и множеств (в Delphi Object Pascal - именная эквивалентность типов за исключением открытых массивов).
12. Множества на базе произвольных типов (set of string).
13. Запрет использования указателей на управляемую память.
14. Процедурные переменные (делегаты) вместо procedure of object.
15. С бестиповыми файлами file можно работать с помощью процедур read, write.
16. Массивы массивов отличаются по типу от двумерных массивов (в частности, записи a[i][j] и a[i,j] неэквивалентны).
17. Перегрузка выполняется без ключевого слова overload.
18. Все конструкторы имеют имя Create.
19. Автоматическое управление памятью с помощью сборщика мусора (за исключением указателей на неуправляемую память).
1. Ключевые слова и директивы packed threadvar inline asm exports library unsafe resourcestring dispinterface in out absolute dynamic local platform requires abstract export message resident assembler safecall automated far near stdcall cdecl published stored contains implements varargs default deprecated package register dispid pascal writeonly и связанные с ними возможности.
2. Приведение типов для переменных: Char(b) := 'd'.
3. Возможность присвоить адрес подпрограммы указателю pointer.
4. Записи с вариантами.
5. Строки PChar.
6. Возможность использовать операцию @ для процедурных переменных.
7. Вариантные типы.
8. Бестиповые параметры (var a; const b).
9. Открытые массивы (не путать с динамическими!).
10. Методы, связанные с сообщениями (message).
11. Классовые свойства.
12. Вложенные определения классов.
13. Константы-поля классов.
Справочник по языку
Язык программирования PascalABC.NET - это язык Pascal нового поколения, включающий в себя все возможности стандартного языка Pascal, расширения языка Delphi Object Pascal, ряд собственных расширений, а также ряд возможностей, обеспечивающих его совместимость с другими .NET-языками. PascalABC.NET является мультипарадигменным языком - на нем можно программировать в различных стилях: структурное программирование, объектно-ориентированное программирование, функциональное программирование.
Кроме того, наличие большого количества стандартных .NET-библиотек классов формирует стиль, ощутимо отличающийся от стиля стандартного Pascal.
Данный раздел содержит описание языка PascalABC.NET.
* Структура программы
* Типы данных
* Выражения и операции
* Область действия идентификатора
* Операторы присваивания
* Составной оператор
* Оператор описания переменной
* Оператор цикла for
* Оператор циклаforeach
* Операторы цикла while и repeat
* Условный оператор if
* Оператор выбора варианта case
* Оператор вызова процедуры
* Оператор try except
* Оператор try finally
* Оператор raise
* Операторы break, continue и exit
* Оператор goto
* Оператор lock
* Оператор with
* Пустой оператор
* Процедуры и функции
* Модули
* Библиотеки dll
* Документирующие комментарии
* Обзор классов и объектов
* Наследование
* Полиморфизм
* Обобщенные типы
* Анонимные классы
* Автоклассы
* Обработка исключений
* Методы расширения
* Интерфейсы
* Атрибуты (в разработке)
* Лямбда-выражения