2015-11-14 57 views
0

我遇到了將十進制變量傳遞給函數的問題。我想要做的是:在代碼的頂部,我聲明變量Money爲十進制private decimal Money,然後將該值設置爲0。我想在AddMoney函數中使用該變量,但是當我聲明函數static void AddMoney時,我不知道要在()中使用在函數外聲明的變量的參數。如何傳遞參數

namespace program 
{ 
    class data 
    { 
     private decimal Money = 0; 

    } 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Menu(); 
     } 
     static void Menu() 
     { 
      ConsoleKeyInfo cki; 
      switch (cki.Key) 
       { 
        case ConsoleKey.NumPad1: 
        case ConsoleKey.D1: 
         Home(); 
         break; 
        case ConsoleKey.NumPad2: 
        case ConsoleKey.D2: 
         AddMoney(); 
         break; 
     static void Home() 
     { 
      Menu(); 
     } 

     static void AddMoney() 
     { 
      Clear(); 
      ConsoleKeyInfo cki; 
      string imputMoney; 
      decimal tempMoney; 
      PrintToScreen(1, 1, "" + Money); 
      PrintToScreen(1, 2, "Please select an option from bellow: "); 
      PrintToScreen(1, 3, "1. Update the current amount (add money to existing amount)"); 
      PrintToScreen(1, 4, "2. Update a new total (rase and change the total)"); 

      cki = Console.ReadKey(); 

      switch (cki.Key) 
      { 
       case ConsoleKey.NumPad1: 
       case ConsoleKey.D1: 
        Clear(); 
        PrintToScreen(1, 1, "Please enter a amount: "); 
        imputMoney = Console.ReadLine(); 
        tempMoney = System.Convert.ToDecimal(imputMoney); 
        tempMoney + Money = Money; 
        PrintToScreen(1, 1, "" + Money); 
        Console.ReadKey(); 
        Menu(); 
        break; 
       case ConsoleKey.NumPad2: 
       case ConsoleKey.D2: 
        Clear(); 
        PrintToScreen(1, 1, "Please enter a amount: "); 
        imputMoney = Console.ReadLine(); 
        tempMoney = System.Convert.ToDecimal(imputMoney); 
        Money = 0; 
        tempMoney = Money; 
        PrintToScreen(1, 1, "" + Money); 
        Console.ReadKey(); 
        Menu(); 
        break; 
      } 

回答

0

您不能使用其他類的私人成員。相反,你可能想要公開它。那麼AddMoney應該採取data變量。所以它應該看起來像這樣:AddMoney(data dataVariable)。現在您已將data.Money公開,您可以隨意使用它。
P.S在C#中,我們使用PascalCase作爲類名。

0

data類擁有一個十進制名爲Money,但它是私人的,所以它不能在該類之外訪問。

通常,如果你想Money通過外部方法改變,你會讓它公開訪問:

class data 
{ 
    public decimal Money { get; set; } 
} 

你的方法,然後才能接受data實例:

static void AddMoney(data myData) 
{ 
    myData.Money += 10; 
} 

... 

data someData = new data { Money = 12.01m }; 
AddMoney(someData); 
// someData.Money will be 22.01 now. 

這不是輕鬆回答這些問題;我們不知道你想用data類做什麼,並且有很多方法可以將參數傳遞給方法。