我正在构建一个游戏,您可以在这里投注一定数量的积分。
当你下注时,我得到用户输入的值,如下所示:
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
是私有的。
提前致谢!
编辑:
这两种方法分别在不同的类中。
答案 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
类跟踪投注信息并根据需要传递它。但是,如果在这里详细介绍这些细节,那就太宽泛了。