writeonly свойства в паскале: надо ли


#1

В #810 @ibond Сказал:

делаю readonly. write-only это вообще бред какой-то

И я вроде и согласен с этим, процедура с приставкой Set была бы более удобна и гибкая (можно чтоб больше чем 1 параметр принимала, и сделать возвращаемое значение). Но всё же в каких то языках writeonly свойства зачем то существуют, возможно, я так думаю только потому - что ещё не встретил ситуацию где оно будет полезно. Я нашёл официальное описание, зачем оно нужно - только тут.

Но и если writeonly в подсказках по наведению мышки не будет показывать, что будет показывать соответствующим свойствам? Возможно стоит запретить описывать свойства которые можно перезаписывать, но нельзя прочитать?

И кстати, каким словом можно назвать и возможность перезаписи и возможность чтения свойства (ну то есть каким надо заменить слова “возможность” в этом предложении).


#2

(продолжение от туда же)

@Admin:

write свойства существуют - очень редко, но бывают нужны. Я пару раз использовал.

Я бы сделал

property t1.p1: byte; read; write;

примерно как в C#. Виртуальность свойства в C# не отображается


#3

Не нужно ничего запрещать. :slight_smile: В паскале ведь должна быть какая-то экзотика в лучшем смысле слова!


#4

Да дело не в экзотике. Дело в том что если не показывает writeonly, по наведению мышки, будет невозможно узнать, есть ли возможность перезаписи у свойства, не переходя к определению.


#5

надуманно все. для это есть обычные методы. свойство оно на то и есть свойство, чтобы его видеть.


#6

Надеюсь, это не станет основанием для удаления writeonly-свойств из языка.


#7

Если и станет - только к лучшему: к чистке языка от синтаксического мусора.


#8

Но согласитесь, забавная вещь.


#9

Ну, тут надо определиться: это все же средство разработки программ или сложный способ позабавиться.


#10

Может пригодится. @Admin тут даже ссылку приводил.


#11

У меня тут рядом с домом валяется огромный скат, похоже, от “Кировца”. Подумал сейчас: может, притащить его в квартиру попробовать? Может пригодится…