Автосвойства


#45

У каждого свои потребности, и это ещё не значит, что это - прихоти.


#46

Чувствую сейчас разговор отойдет от темы автосвойств в тему с переходом на личности. Давайте заранее воздержимся от этого.


#47

Во-первых, ремарка была адресована не Вам. Во-вторых, граница между потребностями и прихотями - она весьма тонкая и подвижная…


#48

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


#49

Видите ли… я все-таки рассматриваю этот язык, как ориентированный на изучение программирования. То, что он написан с .NET и какие-то особенности использует - это чудеса реализации. К изучению программирования они, как и вся .NEТ-среда отношения не имеют. Следовательно, “в .NET принято” - это для меня не аргумент.


#50

#51

Хорошо. Попробую привести более глубокий пример. Предназначение поля - хранение информации. Предназначение свойства - обёртка для поля. Интерфейс класса составляют публичные методы и свойства.


#52

Подчеркну, что свойства не могут входить в интерфейс (interface). Поэтому задать интерфейсом поля класса или записи не получится. На помощь приходят свойства.


#53

Вы там между собой договоритесь сначала, хорошо?


#54

Мы о разных вещах. Я говорил о интерфейсах:

type
  IName = interface
    property X: byte read write;
  end;

begin
end.

@Gleb подразумевал под интерфейсом класса или записи публичные его члены.


#55

Не нужно. Я понимаю о чем вы. но писать надо четко все же.


#56

Хорошо, спасибо за замечание.


#57

Вообще говоря, всё точно. Интерфейс сам по себе - самостоятельная сущность. Если говорить об интерфейсе класса/записи, то это


#58

Некоторые визуальные компоненты поддерживают отображение таблиц, при этом в поля таблицы автоматически попадают свойства объекта. Мы это используем при обучении школьников например в теме “массивы классов”. Это чтобы конкретный пример


#59

Закрываю тему, так как решение разработчиками по их добавлению в язык уже принято.


#60