2

我在 if 中分配了 classability1 和 2,而 {12} 和 {13} 最终未分配。我不确定我在这里做错了什么,但这可能很简单。

else if (Class == "Cleric" || Class == "cleric")
    {
        Class = "Cleric";
        AD = 5;
        AP = 25;
        AS = 10;
        mana = 250;
        classability1 = "Heal";
        classability2 = "Smite";
    }

    Console.Clear();
    Console.WriteLine(@"Name           = {0}
                        Race           = {1}
                        Class          = {2}
                        ----------------------
                        Attack Damage  = {3}
                        Ability power  = {4}
                        Attack Speed   = {5}
                        Armor          = {6}
                        Magic Resist   = {7}
                        Health         = {8}
                        Mana           = {9}
                        ----------------------
                        Racial Bonuses
                        {10}
                        {11}
                        -----------------------
                        Class Abilities
                        {12}
                        {13}
                        Push enter to continue...", name, race, Class, AD, AP, AS, armor, magres, health, mana,    racialbonus1, racialbonus2, classability1, classability2);
    Console.ReadKey();
4

2 回答 2

0

正如之前的海报所说,请发布整个代码块。听起来确实很像

else if (Class == "Cleric" || Class == "cleric")
{
    Class = "Cleric";
    AD = 5;
    AP = 25;
    AS = 10;
    mana = 250;
    classability1 = "Heal";
    classability2 = "Smite";
}

没有被执行。另一种可能性是 if 语句和您的帖子中未显示的行之间可能存在其他代码Console.Write并且正在重新初始化/使字符串无效?

于 2012-10-29T11:23:47.147 回答
0

尝试在他们的声明中用“”分配classability1和classability2,这样编译器就不会认为它是未分配的。例如

string classability1 = "";
string classability2 = "";
if (/*something*/)
{
   // your code
}
else if (/*something*/)
{
   // your code
}

如果您不想遵循上面的提示,则必须有一个“else”语句,并为您的 classability1 和 classability2 变量赋值,否则您的编译器会将这些变量视为未赋值。

于 2015-05-31T01:12:42.820 回答