我一直在編寫一個文本冒險遊戲,隨機場景之一就是在哪裏可以遇見一隻神奇寶貝並與之戰鬥。有一些選項(如查看庫存),需要你回到菜單(打架,跑步,物品,poké)。例如,如果您輸入錯誤的命令,那麼您應該回到菜單。然而,在該方法中,唯一的參數是hasEncountered
,並且觸發,則隨機場景時,它的默認(布爾)假,這意味着在if語句中聲明字符串並在其外部使用它C#
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);
}
如果我嘗試在if
語句聲明pokemon1
,它說,它已經宣佈。但是,如果我在開始時刪除了pokemon1
字符串,則其餘代碼會抱怨它未聲明。有沒有什麼辦法解決這一問題?
這不是抱怨它的未申報的,它的抱怨,它沒有分配的值。 – Silvermind