【问题标题】:C# I am having trouble with variables not acting as I would expectC# 我遇到了变量未按预期运行的问题
【发布时间】:2019-02-15 12:54:02
【问题描述】:

我试图模拟掷骰子,如果骰子落在某个数字上,那么它会做一些事情,如果它落在另一个数字上,它会做其他事情。但是,我遇到了麻烦。上面写着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("");
    }

【问题讨论】:

  • if (hit == 1) 排序

标签: c# string visual-studio int


【解决方案1】:

欢迎堆栈溢出!

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

string hitPoints = hit.ToString();

但在下面,您将它(我希望)与一个数字进行比较:

if (hitPoints = 1)

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

如果你真的希望 hitPoints 是一个字符串,并且你想将它与 1 进行比较,那么试试这个:

if (hitPoints == "1")

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

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());

【讨论】:

    猜你喜欢
    • 2020-08-02
    相关资源
    最近更新 更多