我正在尝试模拟骰子滚动,如果骰子落在某个数字上,那么它会执行某些操作,如果骰子落在另一个数字上,它将执行其他操作。但是,我对此有麻烦。显示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("");
}
答案 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());