我试图模拟掷骰子,如果骰子落在某个数字上,那么它会做一些事情,如果它落在另一个数字上,它会做其他事情。但是,我在这方面遇到了麻烦。它说 if (hitPoints = 1) 我收到错误:



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

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


    EmbedBuilder builder = new EmbedBuilder();



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

最佳答案

欢迎堆栈溢出!

我看到您已将 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());

10-07 22:47