public override int GetHashCode()
        {
            var h1 = Component1 == null ? 0 : Component1.GetHashCode();
            var h2 = Component2 == null ? 0 : Component2.GetHashCode();
            var h3 = Component3 == null ? 0 : Component3.GetHashCode();

            return(Id ^ h1 ^ h2 ^ h3);
        }