170 похожих чатов

Типа эта срань ДО вызова конструктора наследника, или после?

30 ответов

65 просмотров

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

Ayrat Hudaygulov
кто бы знал. Я до сих пор не знаю как они проблему...

без запуска кода, попробуйте в начале подумать что вы тут ожидаете using System; var pointA = new Point(1,1); var pointB = new Point(2,2); var coloredPointA = new ColoredPoint(1,1,5); Console.WriteLine(pointA == pointB); Console.WriteLine(pointA == coloredPointA); Console.WriteLine(pointA == (Point)coloredPointA); Console.WriteLine(ArePointsTheSame(pointA, coloredPointA)); record Point(int x, int y); record ColoredPoint(int x, int y, int color): Point(x, y); static bool ArePointsTheSame(Point a, Point b) => a == b;

Ayrat Hudaygulov
без запуска кода, попробуйте в начале подумать что...

ожидаю что первая строчка вернёт false, а от остальных ничего не ожидаю

Ayrat Hudaygulov
без запуска кода, попробуйте в начале подумать что...

удачи дебажить последнюю функцию, которая валидно принимает два поинта и идёт нахуй на их законном сравнении

Дмитрий
ожидаю что первая строчка вернёт false, а от остал...

я ожидал честно говоря хз чего. Экспешна на сравнении разных типов чтобы хотя бы не давать UB? не уверен даже

Ayrat Hudaygulov
всё False

а точно, там же точки а и б разные

Olzhas Biseuv
а точно, там же точки а и б разные

ну это ладно. Вот что делать с функцией, которая принимает два поинта, сравнивает их и идёт нахуй на равных поинтах?

Ayrat Hudaygulov
ну это ладно. Вот что делать с функцией, которая п...

что делать если у тебя есть функция принимает 2 object? и ты передашь туда 2 одинаковых числа?

Ilya Chernoudov
что делать если у тебя есть функция принимает 2 ob...

У меня рекорды имеют семантику структурного сравнения

Ayrat Hudaygulov
я ожидал честно говоря хз чего. Экспешна на сравне...

от не-sealed классов ожидать конкретной работы виртуальных методов это странно

Дмитрий
от не-sealed классов ожидать конкретной работы вир...

Ну тогда надо отказываться от структурного сравнения. Или ОБОЖЕ запрещать наследование рекордов

Ilya Chernoudov
всё так, и твой рекорд это данные + тип

ниразу не видел, чтобы в дотнете 2 объекта разного типа возвращали true при сравнении

Ilya Chernoudov
ниразу не видел, чтобы в дотнете 2 объекта разного...

Но у меня функция на двух структурно сравниваемых рекордах оперирует

Ilya Chernoudov
ниразу не видел, чтобы в дотнете 2 объекта разного...

можно переопределить метод так, который тип будет проверять и сравнивать

Ilya Chernoudov
помогу тебе sealed record Point();

Я помню этот аргумент ещё с нашего спора про STJ Просто добавь атрибутов! Как я их добавлю в 3рд пати либу

Ayrat Hudaygulov
без запуска кода, попробуйте в начале подумать что...

а это хороший вопрос на собесе, чтобы узнать насколько хорошо знает человек платформу

Ayrat Hudaygulov
Ну тогда надо отказываться от структурного сравнен...

ну по факту сделали лучшее из того что сделали при сохранении возможности наследования. Т.е. или надо был запретить наследование вообще, или сделать как сделали

Olzhas Biseuv
а это хороший вопрос на собесе, чтобы узнать наско...

и если человек отвечает что-то кроме "я не ебу" отказывать в оффере либо по причине неправильно, либо по причине илья

Ayrat Hudaygulov
Я помню этот аргумент ещё с нашего спора про STJ П...

это всё таки проблема либы, тот кто писал мог и на F# хуйни наворотить

ну если это в спеке есть почему и нет, но и вопрос так на прощупать, чем реально что-то узнавать)

Olzhas Biseuv
ну если это в спеке есть почему и нет, но и вопрос...

можно же дальше развить, хоть и не правильно даже ответил, узнать почему так решил, как бы сделал если был разрабом этой фичи, ну или рослином 🤣

Olzhas Biseuv
ну если это в спеке есть почему и нет, но и вопрос...

Ну такое. Лучше попросить человека написать что нибудь

Vlæd Zá
Ну такое. Лучше попросить человека написать что ни...

хз, Я думаю интересно посмотреть размышления, чем сухо какой-то дефолтный код, или алгоритмы

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта