-2

なんらかの理由で MathOperations メソッドがそこで機能していないように見えるので、方程式がゼロとして返されない理由を理解しようとして頭を悩ませていますか? 誰かが助けてくれれば、とても感謝しています。前もって感謝します!

class MathUI
        {
            public void PromptForInt()
            {
                MathOperations ops = new MathOperations();
                Console.WriteLine("Enter first number to calculate");
                ops.Operand1 = int.Parse(Console.ReadLine());
                Console.WriteLine("\nEnter second number to calculate");
                ops.Operand2 = int.Parse(Console.ReadLine());
                return;
            }
            public void PromptForChoice()
            {
                int choice;

                MathOperations result = new MathOperations();
                Console.WriteLine("\nWhat type of operation would you like to perform?");
                Console.WriteLine("[1] Add \n[2] Subtract \n[3] Multiply \n[4] Divide \n[5] Exit \n");
                Console.Write("Enter your choice: ");
                choice = int.Parse(Console.ReadLine());

                if (choice == 1)
                {
                    Console.WriteLine(result.AddNumbers());
                }
                else if (choice == 2)
                {
                    Console.WriteLine(result.SubtractNumbers());
                }
                else if (choice == 3)
                {
                    Console.WriteLine(result.MultiplyNumbers());
                }
                else if (choice == 4)
                {
                    Console.WriteLine(result.DivideNumbers());
                }
                else if (choice == 5)
                {
                    Environment.Exit(0);
                }
                else
                {
                    Console.WriteLine("\nInvalid input entered!");
                }
            }

    class MathOperations
        {

            private int operand1;
            private int operand2;

            public int Operand1
            {
                get
                {
                    return operand1;
                }
                set
                {
                    operand1 = value;
                }
            }
            public int Operand2
            {
                get
                {
                    return operand2;
                }
                set
                {
                    operand2 = value;
                }
            }
            public MathOperations()
            {
                operand1 = 0;
                operand2 = 0;
            }
            public int AddNumbers()
            {
                return operand1 + operand2;
            }
            public int SubtractNumbers()
            {
                return operand1 - operand2;
            }
            public float DivideNumbers()
            {
                return (float)operand1 / (float)operand2;  // (float) used to show output with decimal point
            }
            public int MultiplyNumbers()
            {
                return operand1 * operand2;
            }
4

1 に答える 1

3

ops オブジェクトのオペランド 1 とオペランド 2 の値を設定していますが、結果オブジェクトは設定していません。

MathOperations ops = new MathOperations();
Console.WriteLine("Enter first number to calculate");
ops.Operand1 = int.Parse(Console.ReadLine());
Console.WriteLine("\nEnter second number to calculate");
ops.Operand2 = int.Parse(Console.ReadLine());

ただし、operand1 と operand2 が 0 に初期化されているため、関数の戻り値を持つ結果オブジェクトでメソッドを呼び出します。ops の operand1 と operand2 は、結果の operand1 と operand2 ではなく、ユーザーの入力を保持することに注意してください。結果の計算には同じ ops オブジェクトを使用する必要があります。

于 2014-03-17T04:18:06.653 に答える