如何传递参数

时间:2015-11-14 21:57:15

标签: c#

我遇到将十进制变量传递给函数的问题。我想做的是:在代码的顶部我将变量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;
            }

2 个答案:

答案 0 :(得分:0)

您不能使用其他类的私有成员。相反,您可能希望将其公之于众。然后AddMoney应该采用data变量。所以它应该是这样的:AddMoney(data dataVariable)。现在您已将data.Money公开,您可以随意使用它 P#中的P.S我们使用PascalCase作为类名。

答案 1 :(得分: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类做什么,并且有很多方法可以将参数传递给方法。