为什么我的输入始终采用默认值?

Zaf*_*fee 0 .net c# default-value visual-studio visual-studio-2012

这是我学习目的的代码......

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


namespace Calculator
{
    abstract class calculator 
    {
        internal abstract int add();
        internal abstract int sub();
        internal abstract int mul();
        internal abstract int div();
        internal abstract double square();
        internal abstract double underroot();

    }
    class mycalculator : calculator
    {
        public mycalculator() :base()
        {
        }
        private int num1, num2;
        public int opr1
        {
            get { return num1; }
            set{num1 = value;}
        }

        public int opr2
        {
            get { return num2; }
            set { num2 = value; }
        }


        internal override int add() {
            return num1 + num2;
        }
        internal override int sub()
        {
            return num2 - num1;
        }
        internal override int mul()
        {
            return num1 * num2;
        }
        internal override int div()
        {
            if(num1 > num2){
            return num1 / num2;
            }else
            {
                //Console.WriteLine(num1 + " Must be greater than " + num2 + " and " + num2 + "can not be zero" );
                return 0;
            }
        }
        internal override double square()
        {
            return num1 * num1;
        }
        internal override double underroot()
        {
            return Math.Sqrt(num1);
        }

    }

    class Program
    {
        static void Main(string[] args)
        {
            char choice = 'y';

            while (choice == 'Y' || choice == 'y')
            {

                Console.WriteLine("\n\nPlease Select your Operation....!\n\n\n\n\n");
                Console.WriteLine("Press 1 for Addtion\n");
                Console.WriteLine("Press 2 for Subtraction\n");
                Console.WriteLine("Press 3 for Multiplication\n");
                Console.WriteLine("Press 4 for Division\n");
                Console.WriteLine("Press 5 for square\n");
                Console.WriteLine("Press 6 for UnderRoot\n");
                int opt;
                opt = Convert.ToInt32(Console.Read());
                mycalculator c = new mycalculator();

                switch (opt)
                {
                    case '1':
                        int a;
                        Console.WriteLine("Please Enter Your First Operand");
                        a = Convert.ToInt32(Console.Read());
                       // a = int.Parse(Console.ReadLine());
                        c.opr1 = a;
                        Console.WriteLine("Please Enter Your Second Operand");
                        c.opr2 = Convert.ToInt32(Console.Read());
                        Console.WriteLine(c.opr1 + " +  " + c.opr2 + "  = " + c.add());
                        break;




                    default:
                        Console.WriteLine("Invalid Choice");
                        break;

                }

                Console.WriteLine("\n\n\nDo you want to Perform more calculations??\n");
                Console.WriteLine("Press 'Y' or 'y' to continue, any other key to exit");
                choice = Console.ReadKey().KeyChar;
               // Console.WriteLine(choice);



            }
            Console.Read();

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

为了保持代码的大小,只省略了减法,乘法等的情况......

问题是:当我按1添加两个数字时,它应该采用第一个操作数和第二个操作数,然后,它应该显示结果...但相反,它显示

13 + 10 = 23 
Run Code Online (Sandbox Code Playgroud)

如果我为任何其他函数做,请说它为乘法显示

13*10 = 130
Run Code Online (Sandbox Code Playgroud)

等等

13-10 = 3 
Run Code Online (Sandbox Code Playgroud)

程序不要求我输入值,只显示结果,假定操作数1为13,操作数2为10 ....

我从来没有说过那样的东西..

有人能指出我从哪个地狱这两个数字是自动提交???

诅咒c#和Visual Studio 2012现在:(

产量

Han*_*ian 5

我猜你正在输入'1',然后点击Enter键.Enter键将回车符和换行符发送到您的程序.这两个字符的ASCII码分别为13和10.所以你实际上进入了13和10,即使你不知道它.