2015-10-11 5 views
-2

Так что я делаю программу консоли C#, которая является простым калькулятором, я просто изучаю C#.Как мне позвонить из другого класса?

Вот где я хочу назвать основными:

if (info.Key == ConsoleKey.Escape) 
{ 
    Environment.Exit(0); 
} 
else 
{ 
} 

Я хочу назвать основными для сложения, вычитание, умножение и классы Дивизиона так оно восходят к началу, где он спрашивает «Нажмите» A 'для добавления' и т. д.

Я попробовал поставить «Main();» в противном случае, но это дает мне и ошибку, говорящие «Нет аргументов, которые соответствуют требуемому формальному параметру« args »в« Program.Main (String []) »

Как я могу позвонить по телефону в этот класс, поэтому он идет в начало основного?

+0

Почему вы хотите позвонить Main? У вас есть главная функция для запуска вашего приложения. Затем вы можете вызвать эту функцию вместо Main. –

+2

Возможный дубликат [Calling Main() из другого класса] (http://stackoverflow.com/questions/6723558/calling-main-from-another-class) –

ответ

3

Вы бы не позвонили Main самостоятельно, он используется как точка входа в приложение. Как правило, вы бы взывать к другим методам, например:

static void Main(string[] args) 
{ 
    while (true) 
    { 
     Console.Write("> "); 
     string command = Console.ReadLine().ToLower(); 

     if (command == "add) 
     { 
      Add(); // Call our Add method 
     } 
     else if (command == "subtract") 
     { 
      Subtract(); // Call our Subtract method 
     } 
     else if (command == "multiply") 
     { 
      Multiple(); // Call our Multiply method 
     } 
     else if (command == "exit") 
     { 
      break; // Break the loop 
     } 
    } 
} 

static void Add() 
{ 

} 

static void Subtract() 
{ 

} 

static void Multiply() 
{ 

} 

Другая вещь, чтобы отметить здесь это Main(string[] args) параметр args содержит массив аргументов, переданных в командной строке для консольного приложения.

Если вы были называть Main себя, вы должны передать значение этому, например:

Main(null); // No array 
Main(new string[0]); // An empty array 
Main(new string[] {}); // Another empty array 
Main(new string[] { "Something" }); // An array with a single entry 
+0

Хотя это работает, я думаю, было бы намного лучше иметь метод по методу 'GetCommand' вместо того, чтобы помещать логику в' Main' –

+0

@DarrenYoung Это всего лишь быстрый пример. – Lloyd

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