@Andrej_Rulin, забудьте уже TurboPascal!
К слову, все модули, включая PABCSystem, предназначены для обучения, не более. Для серьёзного проекта используйте только библиотеки .NET.
Используйте System.Console вместо Crt.
Uses System;
Begin
Console.WriteLine('Hello, World!');
End.
Конечно, после того как Вы (@Gleb, это не к Вам конкретно) привыкли к Write/Writeln это выглядит длинно (по себе знаю), но это дело лишь привычки. Потом поймете насколько это удобно. Тем более, если Вы хотите потом изучать C#, то лучше начинать применять .Net Framework в PascalABC.Net.
Минус 1 в карму за рекламу другого языка
Кстати очень зря насчёт забудьте. Одно из действительно неплохих применений PascalABC - это перенос старого кода TurboPascal. Которого накопилось тонны в школах, университетах, для программ личного применения(понятно, уже больше половины выбросили, но всё же). На Delphi это не переносилось по понятным причинам. Вот сейчас , последний шанс это наследие как-то использовать.
Можно использовать, я так перенес кое-что очень старое. Но лучше все же потом переписать на современный код. Заодно и практика…
Предположение о том, что после PascalABC.Net, возможно, будет осуществлен переход на C# - не является рекламой. Это личные предпочтения каждого. Тем более, это не единственный язык, который упоминался на просторах этого форума и не только мной.
@Gleb, перенесите эти два сообщения (моё и @Admin) в Болталку. Причина: оффтоп.
К сожалению, я вынужден, повторить свою просьбу:
Покажите мне доказательство на другом диалекте Pascal, где так можно.
. Хотя, на мой взгляд, это разрешение неправильно по следующим причинам:
- С точки зрения пользователя возникает неоднозначность: неясно требуется ли тело метода или нет. Абстрактные методы это подмножество виртуальных с тем отличием, что их реализация может быть отложена (могут реализовываться в классах потомках).
- В справке сказано:
Данные методы являются виртуальными, но ключевое слово virtual использовать не нужно.
.
Замечу, что пространства имён ещё не готовы, официально их ещё не объявляли. Так что куча issue может привести к исключению их из релиза, а это ведь не очень хорошо
Пишите в Issue. То, что это недокументированная пока возможность, не значит, что не надо писать явные баги
<личное мнение>
Не очень, так как я активно использую namespace’ы. Думаю, что я не единственный такой.</личное мнение>
Вы и вправду не единственный. Я их использую, но боюсь за то, что поток сообщений об ошибках может привести к их исключению из релиза, как это произошло с тайпклассами.
CRT это модуль на пару сотен строчек, все его методы можно легко реализовать самому (большая часть уже готовые в System.Console
).
Ну вот смотрите, зажимаем Ctrl и нажимаем на TextColor
в редакторе, видим следующее:
procedure TextColor(c: integer);
begin
Console.ForegroundColor := IntToConsoleColor(c);
end;
Значит на PABC.Net
это будет выглядеть так:
//uses CRT;
begin
System.Console.ForegroundColor := System.ConsoleColor.White;
end.
Можно написать в начале программы uses System
чтоб не писать его везде, то есть без него будет Console.ForegroundColor
и т.п.