C#我遇到的问题是变量没有像我预期的那样发挥作用

问题描述 投票:4回答:1

我试图模仿一个骰子滚动,如果死亡落在一定数量上然后它做了一些事情,如果它落在另一个数字上它会做其他事情。但是,我遇到了麻烦。在哪里说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("");
    }
c# string visual-studio int
1个回答
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());
© www.soinside.com 2019 - 2024. All rights reserved.