Здравствуйте, VladD2, Вы писали:
_FR>>Мне было бы странно вдруг получить, что экземпляр `BinaryPlusExpression` "эквивалентен" экземпляру `BinaryMinusExpression`. Не смотря на то, что данные там и там одинаковые, поведение (результат выполнения виртуальных методов) может быть разным.
VD>Так это не структурная типизация, а номинативная. В структурной все определяется значениями, а не типами. Введи поле с символом (+/-) и все встанет на свои места.
Да, я понимаю. Говорю о том, что у рекордов такая типизация смотрелась бы странно для меня. Как минимум потому, что рекорды (как и другие пользовательские типы) помимо собственно данных содержат и определённое пользователем поведение, которое имеет право быть разным в разных типах и считать такие объекты одинаковыми "из коробки" было бы неожиданным.
Например в туплах, которые пользователем не расширяются и содержат только данные, это было бы (и есть в дотнете и шарпе) норм.
Кажется, ни что не мешает выписать коллекции с нужным алгоритмом сравнения элементов и использовать в рекордах и туплах их и тогда будет "как нужно" вроде какой спец. поддержки от компилятора тут не требуется?
Help will always be given at Hogwarts to those who ask for it.