我的程序一打开就会关闭

时间:2015-07-22 00:44:16

标签: c#

每当我尝试启动它时,它就会出现这些错误并且应用程序无法运行。为什么?我怎么能解决它,是我的编辑吗? (我正在使用Microsoft visual studio)

  • 线程0x1688已退出,代码为259(0x103)。
  • 线程0x470已退出,代码为259(0x103)。
  • 线程0xc1c已退出,代码为259(0x103)。
  • 线程0x26f0已退出,代码为259(0x103)。
  • 线程0x2708已退出,代码为259(0x103)。
  • 程序'[7956] ConsoleApplication1.vshost.exe'已退出,代码为0(0x0)。

这是代码。

using System;

namespace Inputoftext
{
    class Program
    {
        string str;
        public void detail()
        {
            Console.WriteLine("Multiplication Calculator.");
            Console.WriteLine("Number 1: ");
            string input = Console.ReadLine();
            int number;
            Int32.TryParse(input, out number);
            Console.WriteLine("Number 2: ");
            string inputa = Console.ReadLine();
            int number;
            Int32.TryParse(input, out number);
        }
        public void calculations()
        {
            return input * inputa;
        }
        public void display()
        {
            Console.WriteLine();
            Console.WriteLine(str);
            Console.ReadKey();
        }
    }
    class call
    {
        static void Main()
        {
            Program r = new Program();
            r.detail();
            r.calculations();
            r.display();
            Console.ReadKey();
        }
    }
}

顺便说一下,我是c#的新手,所以不要让它变得复杂,我要求我提供改进代码的建议。

2 个答案:

答案 0 :(得分:1)

这是您程序的固定版本:

class Program
{
    int answer;
    int number;
    int numbera;    
    public void detail()
    {
        Console.WriteLine("Multiplication Calculator.");    

        string input;

        Console.WriteLine("Number 1: ");
        input = Console.ReadLine();
        Int32.TryParse(input, out number);

        Console.WriteLine("Number 2: ");   
        input = Console.ReadLine();
        Int32.TryParse(input, out numbera);
    }
    public void calculations()
    {
        answer = number * numbera;
    }
    public void display()
    {
        Console.WriteLine();
        Console.WriteLine(answer);
    }
}
class call
{
    static void Main()
    {
        Program r = new Program();
        r.detail();
        r.calculations();
        r.display();
    }
}

您可以研究这些差异,以便开始了解错误。

enter image description here

答案 1 :(得分:-3)

看起来你是初学者。

首先,让你的第二课(程序)静态。像

public static void detail()

现在,而不是做

Int32.TryParse(input, out number);

执行此操作:将号码存储为" public"在您的Program类的顶部。摆脱TryParse,你不需要它

class Program
{
    public int number; // can be accessed by other functions/methods
    public int othernumber ; // can be accessed by other functions/methods
    public int sum;

    public void detail()
    {
        Console.WriteLine("Multiplication Calculator.");
        Console.WriteLine("Number 1: ");
        string input = Console.ReadLine();
        number = int.Parse(input);
        Console.WriteLine("Number 2: ");
        string inputa = Console.ReadLine();
        othernumber = int.Parse(inputa);
    }

对于计算()你会返回一些东西,但它是无效的(意味着它不会返回)

这样做:

    public void calculations()
    {
        sum = number * othernumber; // sum should be a global variable
    }

显示屏执行:

    public void display()
    {
        Console.WriteLine("\n"); // doing \n makes a new line (you'll see)
        Console.WriteLine(sum.toString()); // we need to make it a string like that
        Console.ReadKey();
    }

如果您仍然遇到错误,请创建一个新项目。它可能是Visual Studio的问题。

但那些我告诉你的事情!

@Aaron Anodide的回答很好,但谈到Console.WriteLine(回答);它会出错,因为你试图写一个int而不是一个字符串!!!!