コード例 #1
0
ファイル: RomanCalculator.cs プロジェクト: Confirmit/Students
        public static NaturalNumber CalculateExpression(string expression)
        {
            var expressionParts = expression.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

            if (expressionParts.Length != 3)
            {
                throw new InvalidDataException("Invalid expression!");
            }

            var firstNumber = new NaturalNumber(expressionParts[0]);
            var secondNumber = new NaturalNumber(expressionParts[2]);
            var operation = expressionParts[1];

            return GetResult(operation, firstNumber, secondNumber);
        }
コード例 #2
0
        public static NaturalNumber CalculateExpression(string expression)
        {
            var expressionParts = expression.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

            if (expressionParts.Length != 3)
            {
                throw new InvalidDataException("Invalid expression!");
            }

            var firstNumber  = new NaturalNumber(expressionParts[0]);
            var secondNumber = new NaturalNumber(expressionParts[2]);
            var operation    = expressionParts[1];

            return(GetResult(operation, firstNumber, secondNumber));
        }
コード例 #3
0
ファイル: RomanCalculator.cs プロジェクト: Confirmit/Students
        private static NaturalNumber GetResult(string operation, NaturalNumber firstNaturalNumber, NaturalNumber secondNaturalNumber)
        {
            NaturalNumber result;
            switch (operation)
            {
                case "+":
                    result = firstNaturalNumber + secondNaturalNumber;
                    break;
                case "-":
                    result = firstNaturalNumber - secondNaturalNumber;
                    break;
                case "*":
                    result = firstNaturalNumber*secondNaturalNumber;
                    break;
                default:
                    throw new InvalidOperationException("Invalid operation");
            }

            return result;
        }
コード例 #4
0
        private static NaturalNumber GetResult(string operation, NaturalNumber firstNaturalNumber, NaturalNumber secondNaturalNumber)
        {
            NaturalNumber result;

            switch (operation)
            {
            case "+":
                result = firstNaturalNumber + secondNaturalNumber;
                break;

            case "-":
                result = firstNaturalNumber - secondNaturalNumber;
                break;

            case "*":
                result = firstNaturalNumber * secondNaturalNumber;
                break;

            default:
                throw new InvalidOperationException("Invalid operation");
            }

            return(result);
        }
コード例 #5
0
        public static NaturalNumber operator *(NaturalNumber a, NaturalNumber b)
        {
            var result = new NaturalNumber(a.Arabic * b.Arabic);

            return(result);
        }
コード例 #6
0
ファイル: NaturalNumber.cs プロジェクト: Confirmit/Students
        public static NaturalNumber operator -(NaturalNumber a, NaturalNumber b)
        {
            if (a.Arabic - b.Arabic <= 0)
            {
                throw new InvalidOperationException("Result outside the set of natural numbers");
            }
            var result = new NaturalNumber(a.Arabic - b.Arabic);

            return result;
        }
コード例 #7
0
ファイル: NaturalNumber.cs プロジェクト: Confirmit/Students
        public static NaturalNumber operator +(NaturalNumber a, NaturalNumber b)
        {
            var result = new NaturalNumber(a.Arabic + b.Arabic);

            return result;
        }