我一直在编写一个文本冒险游戏,其中一个随机场景是你可以遇到一个神奇宝贝并与之作斗争。有一些选项(比如查看库存)需要你回到菜单(战斗,跑步,物品,poké)。例如,如果您输入了错误的命令,那么您应该返回菜单。但是,在该方法中,唯一的参数是hasEncountered
,当触发随机场景时,默认情况下它是假的(bool),这意味着
if (hasEncountered == false)
{
Console.WriteLine("While travelling you go through a patch of tall grass..");
Thread.Sleep(2000);
Console.WriteLine("*pokemon music*");
Thread.Sleep(1500);
Console.Clear();
Console.WriteLine("You encounter a {0}!", pokemon1);
}
被触发。每当用户输入错误的命令时,都会调用该方法。我不希望用户再次看到这部分,所以我这样做了:
else
{
Console.WriteLine(" < {0} >", pokemon1);
}
但是,if statement
中的字符串“pokemon1”未声明,尽管我在方法的开头声明了它。
public void ConScen3(bool hasEncountered)
{
string pokemon1;
TextAdventure1.ConjoinedScenarios.ConjoinedScenario conScen = new TextAdventure1.ConjoinedScenarios.ConjoinedScenario();
if (hasEncountered == false)
{
Console.WriteLine("While travelling you go through a patch of tall grass..");
Thread.Sleep(2000);
Console.WriteLine("*pokemon music*");
Thread.Sleep(1500);
Console.Clear();
Console.WriteLine("You encounter a {0}!", pokemon1);
}
else
{
Console.WriteLine(" < {0} >", pokemon1);
}
如果我尝试在pokemon1
语句中声明if
,则说它已经声明了。但是,如果我在开头删除pokemon1
字符串,则其余代码会抱怨它未声明。有什么方法可以解决这个问题吗?
答案 0 :(得分:1)
你声明变量(这是string pokemon1;
的作用),但你不为其分配值。
您必须为变量赋予一个值,例如pokemon1 = "Foo";
。
答案 1 :(得分:0)
您需要为pokemon1指定一个值:
public void ConScen3(bool hasEncountered)
{
string pokemon1 = "pikachu";
TextAdventure1.ConjoinedScenarios.ConjoinedScenario conScen = new TextAdventure1.ConjoinedScenarios.ConjoinedScenario();
if (hasEncountered == false)
{
Console.WriteLine("While travelling you go through a patch of tall grass..");
Thread.Sleep(2000);
Console.WriteLine("*pokemon music*");
Thread.Sleep(1500);
Console.Clear();
Console.WriteLine("You encounter a {0}!", pokemon1);
}
else
{
Console.WriteLine(" < {0} >", pokemon1);
}
}