C#我遇到了变量无法按预期运行的麻烦

时间:2018-09-11 04:42:09

标签: c# string visual-studio int

我正在尝试模拟骰子滚动,如果骰子落在某个数字上,那么它会执行某些操作,如果骰子落在另一个数字上,它将执行其他操作。但是,我对此有麻烦。显示if (hitPoints = 1)的地方出现错误:

  

无法将类型'int'隐式转换为'string'。

但是您可以清楚地看到它确实是一个字符串。非常感谢您对这个问题的任何帮助,在此先感谢您。

Random r = new Random();
    int hit = r.Next(1, 5);
    string hitPoints = hit.ToString();


    EmbedBuilder builder = new EmbedBuilder();



    if (hitPoints = 1)
    { 
        builder.WithTitle("");
    }

1 个答案:

答案 0 :(得分:7)

欢迎堆栈溢出!

我看到您已经将hitpoints声明并分配为字符串:

string hitPoints = hit.ToString();

但是在此之下,您正在将其(我希望)与数字进行比较:

if (hitPoints = 1)

那里有两个问题。首先,那不是比较运算符。其次,文字1不是字符串。

如果您确实希望hitPoints是一个字符串,并且想要将其与1进行比较,请尝试以下操作:

if (hitPoints == "1")

旁注:我建议您不要将hitPoints存储为字符串,而只是将其输出为一个。您随时可以在现有的.ToString()变量上调用hit

int hit = r.Next(1, 5);

if (hit == 1) {
    // do a thing
}

// using newer string interpolation, implicit hit.ToString()
Console.WriteLine($"Hit was {hit}");

// using old format, implicit hit.ToString()
Console.WriteLine("Hit was {0}", hit);

// using old format, explicit hit.ToString()
Console.WriteLine("Hit was {0}", hit.ToString());