将变量传递给另一个类中的方法

时间:2018-06-15 13:05:22

标签: c# console-application

我正在构建一个游戏,您可以在这里投注一定数量的积分。

当你下注时,我得到用户输入的值,如下所示:

Class Xyz.cs

public static void Bet(int betAmount)
{
    Console.Write("How many points do you want to bet? ");
    int bet = int.Parse(Console.ReadLine());
    Console.ReadLine();
}

现在,当你下注时,有一个掷骰子,取决于骰子的价值,你将失去或获得积分。

我尝试在此处拨打int 下注

班级abc.cs

public static void GainPoints()
{
    PlayerPoints = PlayerPoints + bet * 5;
}

但是下注获得红色下划线,如果我将鼠标悬停在上面,我会收到此错误:

  

名称'bet'不包含在当前上下文中

属性PlayerPoints是私有的。

提前致谢!

编辑:

这两种方法分别在不同的类中。

1 个答案:

答案 0 :(得分:2)

错误的原因是bet变量是Bet函数的本地变量,并且不能通过它之外的任何方法访问。

Bet函数更有意义的是返回初学者的赌注价值,并将其重命名为更合理的内容:

public static int GetBet(int betAmount)
{
    Console.Write("How many points do you want to bet? ");
    int bet = int.Parse(Console.ReadLine());
    Console.ReadLine();
    return bet;
}

然后,您可以在调用时将值传递给其他函数。像这样更改GainPoints功能:

public static void GainPoints(int bet)
{
    PlayerPoints = PlayerPoints + bet * 5;
}

然后你调用这样的函数,例如:

int bet = Class1.GetBet(betAmount);
Class2.GainPoints(bet);

现在,任何体验开发人员都可能认识到这里的设计并不是最好的。最好有一些Bet类跟踪投注信息并根据需要传递它。但是,如果在这里详细介绍这些细节,那就太宽泛了。