Болталка PascalABC.NET

Можно было бы поговорить на тему свойства в виде лямбда выражений. Хотя, большой пользы я от них не нахожу. Иногда использую. И я соглашусь, пожалуй, в том, что разработчики против их внедрения. И так уже много чего из C# перетащили. Лично мне достаточно, думаю.

Это как?

type
  TClass = class
    property X: byte -> 0;
  end;
  
begin
end.

Совсем примерно. Я так их представляю в PascalABC.Net. На C# так.

Это ReadOnly свойства?

Нет. Я добавил пример для не readonly свойства по ссылке.

Ясно.

Правда, второй случай мне трудно представить в контексте PascalABC.Net… Разве что так:

type
  TClass = class
    fX: integer;
    property X: integer read -> fX write -> fX := value;
  end;
  
begin
end.

, что по меньшей мере, выглядит странно.

1 лайк

Спасибо, что указали где искать.

Это Справка, а не учебник для первоклашек, не умеющих еще включать мозг.

Справка не должна быть построена по принципу «догадайся сам». В справке все должно явно проговариваться. Тем более среду используют в обучении, где очень важна лаконичная и полная подача информации.

Ошибка в Справочник по языку -> Классы -> Конструкторы:

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

Конструктор занимается исключительно инициализацией данных объекта, а не его созданием.

1 лайк

Такая же… э… как бы культурнее сказать? … ерунда!

type
  Sp=class
  
public

  a:array of integer;
  
  constructor (n:integer);
  begin
    a:=new integer[n];
    a[5]:=55;
  end;
end;

begin
  var x:=new Sp(10);
  x.a[5].Println;
end.

Из Вашего примера я не понял ничего.

Ну что я могу сделать… учите язык! )))

1 лайк

Издеваетесь что ли? Я не понял смысла написанного. Как это подтверждает Вашу точку зрения?

Тогда выражайтесь яснее, что именно вы ни поняли. Когда я читаю “ничего” - я понимаю это именно как “ничего”.

Видно, что конструктор именно создает объект a[n] вызовом new, а затем частично его инициализирует.

Ну так a - поле класса. Оно инициализируется конструктором.

Верно. Но оно и СОЗДАЕТСЯ им же.

Поле создаётся конструктором?

Ну и? Я с ним полностью согласен.

Ну вот я и написал программу в опровержение. Можете быть согласны и дальше, но ведь кроме Вас сюдп и другие люди заходят, пусть посмотрят, как оно на самом деле))

А теперь вопрос: по какому поводу сейчас был спор?