Александр
Просветленный
(21522)
3 месяца назад
Не самое лучшее использование record. Его хорошо использовать для иммутабельных конструкций, конфигов, вычислений, циклов. Например когда нам в цикле нужно создать большое кол-во объектов, которые впоследствии не будут изменены, и тут будет полезен record, потому что позволяет избегать дополнительных аллокаций. Ну и там есть еще нюансы при сравнении объектов по значению/ссылке и при сериализации. Вообщем в качестве моделей Request/Response используйте обычные классы, они же Dto. И sealed тоже не очень, потому что одна Dto может наследовать другую. Вполне нормальное явление.
vato 1Мастер (1509)
3 месяца назад
у меня была мысль что в разрезе одного реквеста , эта модель живёт всего раз и для максимальной производительности рекорд выглядил максимально привлекательно , причём даже если совпадают все свойства я не смогу сделать родительский базовый класс для реквеста так как они зачастую по сути своей отличаются. Есть совет исходя из этой доп информации?
public record RegisterRequest(string Email, string Password);
public record ConfirmEmailRequest(string Email, string Otp);
public record ChangePasswordRequest(string Email, string CurrentPassword,string NewPassword);
public record ResetPasswordRequest(string Email);
public record NewPasswordRequest(string Email,string Otp,string NewPassword);
Обоснованно ли , хорошая ли практика , до этого я писал public sealed class с required свойствами.