我正在写一个简短的节目。我需要的是我想在Game.cs中设置“正确”参数,在我的advTry.cs中,我想使用这个“正确”参数来确定输出。和我的班级advTry.cs一样:
public bool correct { get; set; }
if (correct)
{
solveButton = new MenuButton(contentManager.Load<Texture2D>("solve"),
buttonCenter, GameState.AnswerNo);
Console.WriteLine("OK");
}
else
{
solveButton2 = new MenuButton(contentManager.Load<Texture2D>("solve"),
buttonCenter, GameState.AnswerYes);
Console.WriteLine("Not OK");
}
在我的GAME.cs中,我将其定义为:
if (messageString == "18")
{
Console.WriteLine("Main OK");
advTry.correct = true;
}
else
{
advTry.correct = false;
Console.WriteLine("Main not OK");
}
我使用Console.WriteLine来检查布尔参数“正确”的传递。虽然结果原来是“不行”,但是当我开始输入“18”时,它首先发出“Main not OK”,然后“Main OK”(很容易理解,因为输入“1”然后“8”) 。
然而,最大的问题是“OK”永远不会出现,状态“GameState.AnswerNo”无法实现,为什么会这样?请问如何解决?
答案 0 :(得分:0)
你的问题根本不清楚。除了这两个条件之外,你还没有想到代码的结构。现在回答它是不可能的。但是,我对你在这里写的内容的最好猜测是你在advTry类中将“correct”的值设置为true,但是你没有在该类中运行代码来向控制台输出OK。该代码不会因为您设置“正确”的值而自动运行。你需要在advTry.cs中做这样的事情:
private bool _correct;
public bool correct
{
get { return _correct; }
set
{
_correct = value;
output();
}
}
private void output
{
if (_correct)
{
//output "OK"
}
else
{
//output "Not OK"
}
}