如何从C#中获取用户的输入?

时间:2014-06-27 05:40:47

标签: c# methods input console-application user-input

我有以下程序。

using System;    
public class myeventhandler
{
    private int x;
    private int y;

    public myeventhandler(int a, int b)
    {
        x = a;
        y = b;
    }

    public myeventhandler()
    { 
    }

    public int add()
    {
        return x + y; 
    }

    public int sub()
    {
        return x - y;
    }

}

public class test
{
    public static void Main()
    {
        int a, b;

        Console.WriteLine("enter the first number");
        a = Convert.ToInt32(Console.ReadLine());
        Console.WriteLine("enetr the second no");
        b = Convert.ToInt32(Console.ReadLine());
        myeventhandler mh = new myeventhandler(a,b);
        int z = mh.add();
        Console.WriteLine("you enetered {0} and {1} whose sum is {}", a, b,z);
        Console.ReadKey();
        //Console.WriteLine("the sum of {0} and {1} is {2}", a, b, mh.add());
        //Console.ReadKey();         
    }
}

当我运行此程序时,它在取得两个输入后停止工作。我在这里找不到什么错误。

如代码所示,我认为从用户获取的值首先转换为int,然后保存到变量a。

如果是这样,那么问题是什么?

2 个答案:

答案 0 :(得分:2)

您可能会收到FormatException,因为" {}"不是公认的格式。将该行代码更改为...

Console.WriteLine("you enetered {0} and {1} whose sum is {2}", a, b,z);

你应该没问题

答案 1 :(得分:1)

当你说它停止工作时,你的意思是应用程序关闭并退出,或者只是挂在那里?

找出问题的最佳方法是调试代码。假设您使用Visual Studio(任何版本),您可以将光标放在第二个打印行(输入第二个否)并按F9或左键单击边距以显示红点。这是一个断点,当程序到达这一点时,调试器将暂停。现在按F5以使用调试器启动程序,您很快就会遇到断点。

从底部的调试窗口中,您可以看到局部变量以及添加您想要观看的任何内容。使用F10和F11,您可以跨越代码行并分别进入方法。通过这样做,您可以验证a和b是否是您认为的。此外,如果抛出异常,因为它无法解析从控制台输入的值,Visual Studio将告诉您问题所在。这通常会帮助您修复代码。

一旦您对编码有了更多的了解,您肯定希望研究单元测试和可能的测试驱动开发(TDD),以便确保您的代码在一系列条件下按预期运行。