public MethodsVector TurnVector(MethodsVector vector)
        {
            for (int i = 0; i < vector.component.Length; ++i)
            {
                vector.component[i] *= -1;
            }

            return(new MethodsVector(vector.size, vector.component));
        }
        // TODO Правильно ли считается скаляр? Что делать если вектора разного размера?
        public static double ScalarProductVectors(MethodsVector vector1, MethodsVector vector2)
        {
            double scalarProduct = 0;

            for (int i = 0; i < vector1.component.Length; ++i)
            {
                scalarProduct += vector1.component[i] * vector2.component[i];
            }

            return(scalarProduct);
        }
        // TODO Size - что происходит с этим значением? Нет конструктора создания обычного объекта.
        public MethodsVector SubtractionVectors(MethodsVector vector)
        {
            List <double> newComponent = new List <double>();

            for (int i = 0; i < vector.component.Length; ++i)
            {
                //TODO компоненты меньшей дленны должны заполняться "0"
                if (vector.component.Length < component.Length)
                {
                    newComponent.Add(component[i] - vector.component[i]);
                }
                else
                {
                    newComponent.Add(component[i]);
                }
            }

            return(new MethodsVector(newComponent.ToArray()));
        }
        public static MethodsVector AdditionVectorsStatic(MethodsVector vector1, MethodsVector vector2)
        {
            List <double> newComponent = new List <double>();

            for (int i = 0; i < vector2.component.Length; ++i)
            {
                //TODO компоненты меньшей дленны должны заполняться "0"
                if (vector2.component.Length < vector1.component.Length)
                {
                    newComponent.Add(vector1.component[i] + vector2.component[i]);
                }
                else
                {
                    newComponent.Add(vector1.component[i]);
                }
            }

            return(new MethodsVector(newComponent.ToArray()));
        }
        public override bool Equals(object obj)
        {
            if (ReferenceEquals(this, obj))
            {
                return(true);
            }

            if (ReferenceEquals(null, obj) || obj.GetType() != GetType())
            {
                return(false);
            }

            MethodsVector vector = (MethodsVector)obj;

            for (int i = 0; i < component.Length; ++i)
            {
                if (vector.component[i] != component[i])
                {
                    return(false);
                }
            }

            return(vector.size == size);
        }
        public static void Main(string[] args)
        {
            MethodsVector v = new MethodsVector(4);

            Console.WriteLine($"{v}");
        }
 public MethodsVector(MethodsVector vector)
 {
     size = vector.size;
     Array.Copy(component, vector.component, vector.component.Length);
 }
 public double GetSize(MethodsVector vector)
 {
     return(vector.size);
 }