public static LongNumber operator *(LongNumber firstNumber, long seconNumber)
 {
     if (firstNumber == null)
     {
         return null;
     }
     else
     {
         LongNumber newNumber = new LongNumber(firstNumber);
         newNumber.Multiply(seconNumber);
         return newNumber;
     }
 }
        private void Multiply(long number)
        {
            if (this.A != null)
            {
                this.A.Multiply(number);
            }

            if (number / X != 0)
            {
                LongNumber longNumber = new LongNumber(number);
                longNumber.Multiply(this.B);
                this.B = 0;
                this.AddNumber(longNumber);
            }
            else
            {
                checked
                {
                    long multiplicationResult = this.B * number;
                    this.B = multiplicationResult % X;
                    if (multiplicationResult / X != 0)
                    {
                        if (this.A == null)
                        {
                            this.A = new LongNumber(multiplicationResult / X);
                        }
                        else
                        {
                            this.A.AddNumber(multiplicationResult / X);
                        }
                    }
                }
            }
        }