Dilma писал(а):
Начинаю постепенно терять суть спора. Из сказанного понял только, что автоматическую конвертацию делать нельзя потому что:
1) Делали раньше ReadXXX, теперь тоже обязаны делать нечто подобное - e_xxx.
2) Разработчику кодов элемента нужно непременно указывать тип приведение вручную - иначе он запутается.
Неправильно понял.
Не поэтому.
А потому, что это меняет интерфейс пользователя 2-го уровня (НЕ 1-го). Примерно таким образом:
Galkov писал(а):
Есть у элемента IndexToChanel св-во Data
Во-первых, это какой же тип мы должны назначать при Data=NUL
И пусть подключена верхняя точка и с нее всегда идет String.
Оппа, а пользователь забыл, что Data = real(1.0). И что характерно - и не надо до этого ему было помнить.
Заморочка ведь.
Опять же - нет для меня догм. Мне думается, что допустимо менять интерфейс пользователя 2-го уровня.
НО, только если мы получаем какие-то дополнительные качества, недостижимые другим способом, не меняющим интерфейс (пользователя 2-го уровня)
И кажется мне пока, что эти изменения в интерфейсе - необоснованы просто.
Некие удобства для пользователя 1-го уровня - не аргумент вовсе.
Ну, или я не понял наших достижений - так объясни, пожалуйста
Про обязаны.
Плюс к вышесказанному, это не более чем личное мнение, что в правилах без исключений путаешься меньше, чем в правилах с исключениями.
Всегда надо ставить явное приведение типа, Никогда не надо ставить приведение типа - любое из них лучше, чем-то же самое, но с некоторыми исключениями...
"Никогда", во-первых - не всегда получается, во-вторых (что мне кажется и должно быть решающим) - меняют интерфейс пользователя 2-го уровня.
Dilma писал(а):
т.е. под этим понимается расширение количества типов для точек? Было 5 типов стало 19 - засыпали дорогу. Совершенно глупый вопрос напрашивается: а если бы типов стало 6 это тоже засыпание дороги Нет, понимается не это
Засыпание - это изменение интерфейса пользователя второго уровня.
Раньше работало, а теперь приходится проводить какие-то непонятные действия, чтобы заработало.
Непонятные, потому что пользователь 2-го уровня имеет право ничего не знать о целевом языке, и какие там возможности приведения типов, и нужны ли они вообще.
Он (пользователь 2-го уровня) имеет обыкновение говорить: "да мне и HiAsm нравится, потому что языков программирования знать не надо"
Dilma писал(а):
Хотелось бы все-таки конкретизировать свои высказывания на примерах. На данный момент абсолютно не ясно, что будет вызывать у разработчика путаницу и когда, а так же почему у пользователя возникнут трудности с интерфейсом.Ну вот же, цитата выше - давно уже про это говорю...
Dilma писал(а):
В каких случаях это не константа?Пусть есть метод элемента, который использует св-во X
Код этого метода настолько большой, что не вызывает сомнения рациональность функционального вызова при реализации этого метода.
Если в схеме один такой элемент и этот метод вызывается лишь один раз - инлайнинг оптимален, безусловно, и при реализации метода, вместо св-ва X подставляется ее константное значение.
Если таких элемента 2, для обоих есть вызов этого метода, и константные значения св-ва X у них РАЗНЫЕ (тоже важно) - это должен быть функциональный вызов метода, для которого X - это переменная.
Кстати, event-ов это тоже касается. Самым прямым образом. В том числе и тех, чьи имена совпадают с именем св-ва
Dilma писал(а):
Такие точки должны определяться только для св-тв, являющихся начальными инициализаторами полей объекта. Во всех иных случаях это уже будет комбо элемент с основным ф-лом + встроенной ячейкой памятиНе совсем уловил смысл сказанного.
Давай конкретно: может ли быть "особачено" св-во, имеющее одноименную верхнюю точку