我遇到将十进制变量传递给函数的问题。我想做的是:在代码的顶部我将变量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 :(得分: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
类做什么,并且有很多方法可以将参数传递给方法。