/
oleggbruh
/
TaskTracker
Обзор
Документация
Войти
/
oleggbruh
/
TaskTracker
Код
Запросы
1
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
BuildingBlocks/BuildingBlocks.Domain/ValueObject.cs
23 строки
790 B
olegg
feat: add BuildingBlocks proj
19 окт 2025, 04:07
19 окт 2025, 04:07
6a501f8
Код
Авторство
О чём код?
namespace BuildingBlocks.Domain; public abstract class ValueObject<T> where T : ValueObject<T> { public abstract IEnumerable<object> GetEqualityComponents(); public override bool Equals(object? obj) => obj is not null && obj is T valueObject && obj.GetType() == GetType() && GetEqualityComponents().SequenceEqual(valueObject.GetEqualityComponents()); public static bool operator ==(ValueObject<T> left, ValueObject<T> right) => left.Equals(right); public static bool operator !=(ValueObject<T> left, ValueObject<T> right) => !left.Equals(right); public override int GetHashCode() => GetEqualityComponents() .Select(x => x?.GetHashCode() ?? 0) .Aggregate((x, y) => x ^ y); }