Vladimir
Так тут рекорды не при чём. И сейчас такие вопросы задавать можно.
а сейчас в своих классах люди редко используют, а в рекордах это хлеб и масло)
Ayrat
Вот да. их для этого и придумали
Ilya
Как будто при равенстве типы через is не проверяют. В целом, тут то же самое.
Ayrat
ДТО с валуе семантикой
Ayrat
короче, я считаю что наличие наследования у рекордов сделает пару флоу проще и открывает ворота новому вороху багов, wtf и место для тупых вопросов на собесах. Рихтер может даже книгу напишет отдельную - “Как наследовать рекорды и не отстрелить ногу”. Опять же конференции можно будет проводить по этой тематике
Ilya
А ты перечитай контракт. Там ничего про обязанность хвалить сишарп не было?
Ayrat
Вроде нет!
Ilya
Хм, а у рекорда можно Equals переопределить же?
Mikhαil
А ты перечитай контракт. Там ничего про обязанность хвалить сишарп не было?
эт ему потом политрук расскажет. еще полгода-год и Айрат будет егоровы песни петь
Ayrat
эт ему потом политрук расскажет. еще полгода-год и Айрат будет егоровы песни петь
Да, у Егора прям виден стокгольмский синдром. оправдывает вообще всю лютую хуйню из МС
Vladimir
Хм, а у рекорда можно Equals переопределить же?
вот это меня тоже вырубило, вместо того чтобы Equals переопределять как в фарше, они ввели новый тип сравнения
Vladimir
EqualityContract
Ilya
Ты и его не сможешь переделать, кажется.
Vladimir
protected override Type EqualityContract { get; };
Vladimir
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-9.0/records
Vladimir
там дебри какие-то)
Ilya
А, оно только для наследников, что ли? Сложна.
Vladimir
мб для того чтобы обычные классы можно было с рекордами сравнивать
Ayrat
Ну всё, пишу Рихтеру
Ayrat
Пусть талмуд пишет
Ilya
Да, только у наследников можно.
Ilya
Кхм.
Vladimir
Ayrat
Кхм.
ВОООООТ
Ayrat
а я говорил
Ayrat
типа PointWithColor == Point какой еквалити вызовется?
Vladimir
если в наследнике написать EqualityContract => typeof(Person), то будет тру в обоих случаях?
Ayrat
Короче, удачи в говнокоде
Ayrat
это прям пиздец
Vasily
Чо блять
Ayrat
сука, поменял местами и привет
Ayrat
ахааххаа
Ayrat
Да ну нахуй
Vladimir
Так я и написал. Вон выше кот.
там выше ты у наследника написал typeof(Client) :)
Ilya
А, я уже поменял на Person, да. И сравнение с ним.
Ilya
С Client поведение осталось дефолтным, конечно.
Vladimir
т.е. никак сейчас не сделать чтобы тру в обоих случаях выдавало?
Ilya
Как раз думаю об этом.
Ilya
Надо посмотреть, чо там генерируется по методам.
Sergey
Народ а кто-нибудь нюхал infer от фб? Как там с поддержкой с++ и расширением вообще
Ilya
Кажется, шарплаб падает от таких извращений. Придётся вернуться в VS.
Ilya
Я затупил и для Person тоже пытался впихнуть оверрайд. Там компилится. А вот чо с равенством делать, я пока хз! public record Person(string Name) { protected virtual Type EqualityContract => typeof(Person); }; public record Client(string Name, int Age) : Person(Name) { protected override Type EqualityContract => typeof(Person); };
Ayrat
он и так загажен Manada MayBy
Ayrat
НОРМАС
Ayrat
манада
Sergey
Майбай
Vasily
В теории я могу объяснить поведение
Vasily
При сравнении
Vasily
Но принять я это не могу
Vasiliy
Народ, юзал кто EF core power tool и Handlebars ? надо иметь возможность 1) наследоваться от двух разных интерфейсов 2) переименовать некоторые таблицы
Ilya
Психанул и добавил наследнику public virtual bool Equals(Client? other) => true; Заработало :D
Maksym
https://www.theregister.com/2016/03/23/npm_left_pad_chaos/
Maksym
Классная статья, рекомендую, почему надо избегать 3 пати либ
Maksym
и нет
Почему нет?
Ilya
Психанул и добавил наследнику public virtual bool Equals(Client? other) => true; Заработало :D
В общем, не получится. В other в обоих сравнениях приходит null. Наверное, пытаются скастовать базу в наследник. На этом этапе, как я понимаю, уже до значений полей не достучаться, а перегрузить больше ничего нельзя, как я понимаю. Жаль.
🇺🇦 Дмитрий
кого-то гоняли по комбинаторике на собеседовании?
Vladislav
Надеюсь что никогда не будут
Maksym
кого-то гоняли по комбинаторике на собеседовании?
Только на позицию мидла по дата саенсу, по софтверу никогда
🇺🇦 Дмитрий
проходил на сеньера full stack погоняли
Maksym
проходил на сеньера full stack погоняли
Ну такое себе, даже задачи с литкода выглядит приятнее
🇺🇦 Дмитрий
скинули бабла за мои познания комбинаторики, странно или нет?
Vladyslav
ты хвастаешься что ли?)
🇺🇦 Дмитрий
скорее жалуюсь
🇺🇦 Дмитрий
при том что на когда спросили юзают ли они эти знания в работе, ответили что просто употребляют в рече, но так то не юзают
Vladyslav
эх, бабла дали, уроды
🇺🇦 Дмитрий
наоборот
🇺🇦 Дмитрий
я сказал одну цифру
🇺🇦 Дмитрий
а преложили меньше
Vladyslav
аа
Sergey
эх, бабла дали, уроды
Скинули значит меньше дали
Vladyslav
я думал ты не прошёл, но тебе чисто 20-ку дали за комбинаторику :D
Vladislav
Можно ещё метафизику Гегеля попросить пояснить, тоже к работе относится