2015-07-22 2 views
0

Всякий раз, когда я пытаюсь запустить это, он просто придумывает эти ошибки и приложение не запускается. Зачем? и как я могу это исправить, это мой редактор? (Я использую визуальную студию Microsoft)Моя программа закрывается, как только она открывается

  • Нить 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#, так что не делают его сложным и им открыт для предложений, чтобы улучшить свой код.

+1

Я предполагаю, что он запускает другой проект, главным образом потому, что «Консоль.WriteLine (str); 'должен давать ошибку компилятора; 'str' никогда не получает значения. Проверьте список решений справа, щелкните правой кнопкой мыши свое решение и нажмите «Установить как проект запуска». – Rob

+0

. Параметр Int может исключать исключение, используйте trycatch. – meda

+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

+0

Спасибо, чувак! Это действительно помогает. Учитывая, что я смотрел в воскресенье, возможность сравнивать помогает. – lesquishy

-2

Похоже, вы новичок.

Прежде всего, сделайте свой второй класс (программа) статичным. Как

public static void detail() 

Теперь, вместо того, чтобы делать

Int32.TryParse(input, out number); 

ли это: Сделайте номера, сохраненные как «общественное» в верхней части класса Program. Избавьтесь от TryParse, вам не нужно это

Like

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); 
    } 

Для расчетов() вы возвращаете что-то, но он является ничтожным (то есть он не возвращается)

Do это:

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.

Но делайте то, что я сказал вам!

@ Ответ Аарона Анодид был ОК, но когда дело доходит до Console.WriteLine (ответ); это будет ошибка, потому что вы пытаетесь написать int, а не строку !!!!

+0

'Console.WriteLine()' обрабатывает параметр 'int' просто отлично. https://msdn.microsoft.com/en-us/library/70x4wcx1(v=vs.110).aspx –

Смежные вопросы