type
T = class
property X: integer read 0;
property Y: integer read X; // Program1.pas(4) : В качестве акцессора можно указывать только метод или поле класса
end;
begin
end.
Такое планируется разрешить в дальнейшем?
type
T = class
property X: integer read 0;
property Y: integer read X; // Program1.pas(4) : В качестве акцессора можно указывать только метод или поле класса
end;
begin
end.
Такое планируется разрешить в дальнейшем?
Нет, надо писать integer(X)
. Это чтоб дельфиоиды не злились сделано. То есть иначе это будет мешаться с обычным синтаксисом, и для тех кто привык к дельфи - будет сложнее найти ошибку.
Спасибо. Странно… Использовать оператор приведения типов только ради того, чтобы не смешивать синтаксисы… Притом, что типы одинаковые.
Хороший пример, спасибо. Делайте Issue, а мы подумаем, разрешать такое или нет. Здесь конкурируют старые и новые свойства. Возможно, такое нельзя будет сделать. То есть, если это простое имя в Readerе, то это - старые свойства, если составное, - то новые. Пока логика такая, и она более-менее интуитивно понятная. Если разрешить это, старые и новые свойства сольются. Ну например, если X - это вызов внешней функции без параметров. Здесь хорошо ожидаемое поведение, а так программист не будет понимать, что происходит
Хорошо.
Вопрос снят @Admin:
В документации пропишем, что если это имя, то оно должно быть именем поля или функции без параметров - членом этого класса