Знаю, холивар такой холивар.
Возвращаюсь к теме свойств во FreePascal. Вроде, договорились до того, что передача в свойство значения не того же типа, что и само свойство -- ломает семантику свойства, но никак не типизацию.
И вот нате вам работающий пример: PascalABC for .Net в качестве сеттера для свойства принимает что угодно!!! Но присвоение идёт с приведением типа.
Ломает семантику? Ломает. Но в мире нет абсолютных правил. По крайней мере, не вижу ничего страшного в том, чтобы передать single в сеттер свойства integer.
Более того, в PascalABC возможна даже такая штука:
Код:
тРон = class
private
_знач: integer;
function _знач_Уст(знач_: integer);
function _знач_Уст(знач_: single);
public
property знач: integer read _знач write _знач_Уст;
end;
Мало того, что несколько функций (НЕ ПРОЦЕДУР) для свойства для установки, так ещё и какие угодно типы))
Не поймите не правильно, я не разделяю подобные подходы, они корявые с точки зрения ООП, но с точки зрения строгой типизации всё законно.