与随机字符串连接

时间:2014-10-02 18:02:59

标签: c# string concatenation

所以我正在尝试制作一个简单的骰子滚动程序,我将在未来的项目中使用但是我遇到了一些问题。我希望能够选择2个随机数,然后将这些数字放入文本框中的句子中。当然我意识到我无法将整数与字符串连接起来,所以起初我尝试将整数转换为字符串,但这不起作用。所以现在我有了这个:

    Random r1 = new Random();
    Random r2 = new Random();
    int dice1Number;
    int dice2Number;
    string dice1Text;
    string dice2Text;

    private void button1_Click(object sender, EventArgs e)
    {
        var r1 = new Random();
        dice1Number = r1.Next(1, 6);
        var r2 = new Random();
        dice2Number = r2.Next(1, 6);
        if (dice1Number == 1)
        {
            dice1Text = "1";
        }
        else if (dice1Number == 1)
        {
            dice1Text = "2";
        }
        else if (dice1Number == 1)
        {
            dice1Text = "3";
        }
        else if (dice1Number == 1)
        {
            dice1Text = "4";
        }
        else if (dice1Number == 1)
        {
            dice1Text = "5";
        }
        else if (dice1Number == 1)
        {
            dice1Text = "6";
        }

        if (dice2Number == 1)
        {
            dice2Text = "1";
        }
        else if (dice2Number == 1)
        {
            dice2Text = "2";
        }
        else if (dice2Number == 1)
        {
            dice2Text = "3";
        }
        else if (dice2Number == 1)
        {
            dice2Text = "4";
        }
        else if (dice2Number == 1)
        {
            dice2Text = "5";
        }
        else if (dice2Number == 1)
        {
            dice2Text = "6";
        }
        textBox1.Text = "You rolled " + dice1Text ", " + dice2Text;
    }

我认为这种方法可能效果更好但现在我收到的错误是“只有赋值,调用,递增,递减和新对象表达式才能用作语句”。知道如何解决这个问题或其他方式我可以做到这一点吗?

3 个答案:

答案 0 :(得分:5)

您应该可以使用string.Format

string.Format("You rolled {0},{1}", dice1Number, dice2Number);

这样你不需要大if块。您还可以将int转换为如下字符串:

dice1Number.ToString();

这会将其转换为字符串。

在不相关的注释中 - 您有一个全局Random r1,但随后在您的方法中重新声明它。您应该只重用Random对象,而不为要生成的每个随机数声明一个新对象。

要清理此代码(假设您不需要存储骰子卷,只想显示已滚动的内容),您可以更改按钮点击代码,如下所示:

private Random _rand = new Random();

private void button1_Click(object sender, EventArgs e)
{
    textBox1.Text = string.Format("You rolled {0}, {1}", _rand.Next(1,7), _rand.Next(1,7);
}

答案 1 :(得分:0)

你可以像这样连接整数和字符串。

String test = String.Concat("something", 0);

答案 2 :(得分:0)

这应该是你想要的。

    var rnd = new Random();
    var d1 = rnd.Next(1, 7), d2 = rnd.Next(1, 7);

    String.Concat("You rolled ", String.Join(", ", d1.ToString(), d2.ToString()));

请记住,上限是独占的。