2012-05-08 2 views
1

Я не могу понять, как передать общее количество, продажу и comm в Main().C# консольное приложение - калькулятор комиссии - как передать переменные в Main()

Кто-нибудь понял, как получить эти переменные в Main и отобразить (выводить) их там с именами?

Прямо сейчас я могу только выходные переменные в calcComm ...

Заранее спасибо

Филипп

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

namespace ConsoleApplication38 
{ 
class Program 
{ 

    public static void getsales() 
    { 
     string inputsales; 
     double total = 0; 
     double sale = 0; 

     for (int salecount = 1; salecount <= 3; ++salecount) 
     { 

      Console.WriteLine("Enter sale: "); 
      inputsales = Console.ReadLine(); 
      sale = Convert.ToDouble(inputsales); 
      total = total + sale; 

     } 

     calcComm(total); 

    } 

    public static void calcComm(double total) 
    { 

     double comm = 0; 
     comm = total * 0.2; 
     Console.WriteLine(comm); 

    } 


    public static void Main() 
    { 
     Console.WriteLine("   Sunshine Hot Tubs \n  Sales Commissions Report\n"); 
     char Letter; 

     const string name1 = "Andreas"; 
     const string name2 = "Brittany"; 
     const string name3 = "Eric"; 
     string inputLetter; 
     string name; 
     Console.WriteLine("Please enter intial or type 'z' to quit"); 

     inputLetter = Console.ReadLine(); 
     Letter = Convert.ToChar(inputLetter); 



     while (Letter != 'z') 
     { 

      if (Letter == 'a') 
      { 
       name = name1; 
       getsales(); 
      } 
      else if (Letter == 'b') 
      { 
       name = name2; 
       getsales(); 
      } 
      else if (Letter == 'e') 
      { 
       name = name3; 
       getsales(); 
      } 

        else 
        { 
         Console.WriteLine("Invalid entry try again"); 
        } 



        Console.WriteLine("Please enter intial or type z to quit"); 

        inputLetter = Console.ReadLine(); 
        Letter = Convert.ToChar(inputLetter); 




     } 
    } 
} 
} 

ответ

2

Вы должны использовать объекты, тогда вы можете сделать их общедоступными.

class Sales 
{ 
    public double total; 
    public double sale; 
    public double comm; 
    ... 

    public void CalcComm() 
    { 
     ... 
    } 
} 

Затем вы можете ссылаться на них, как это:

Sales.total, Sales.sale 

Или вы можете сделать их глобальными, но это обычно не рекомендуется.

0

Посмотрите в return ключевое слово в C#; получите свои функции, чтобы вернуть соответствующие данные обратно main и использовать его.

+0

Не могли бы вы в конечном итоге показать мне свою программу, как это сделать, потому что я пробовал это раньше, но тип возврата «void» испортил его. После этого я сдался. : D Я очень новичок в C#, извините, если я говорю глупо. Было бы здорово, если бы вы могли показать мне! Заранее спасибо. –

0

Рассмотрите этот пример, как добавить аргументы командной строки. Если вам нужно, чтобы они были программно добавлены, подумайте над написанием программы-обертки и началом процесса внутри нее.

using System; 

class Program 
{ 
    static void Main(string[] args) 
    { 
    if (args == null) 
    { 
     Console.WriteLine("args is null"); // Check for null array 
    } 
    else 
    { 
     Console.Write("args length is "); 
     Console.WriteLine(args.Length); // Write array length 
     for (int i = 0; i < args.Length; i++) // Loop through array 
     { 
     string argument = args[i]; 
     Console.Write("args index "); 
     Console.Write(i); // Write index 
     Console.Write(" is ["); 
     Console.Write(argument); // Write string 
     Console.WriteLine("]"); 
     } 
    } 
    Console.ReadLine(); 
    } 
} 
0

либо вы можете создать объект передачи данных, который содержит все эти три переменные, а затем вернуть его к вашей основной функции.

Вы также можете использовать переменные, которые передаются в виде ссылок, а не по значению и использовать обновленную эталонное значение. Читайте о проходе по типу значения & ссылочный тип для C# и ключевое слово ref.

3

Это дает массив строк, соответствующих параметрам командной строки.

Main(string [] args) 

Кстати, имея дело с денежными единицами, лучше использовать десятичную двойную.

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