"str" + x + "str" 是什么意思?

What does "str" + x + "str" mean?

为什么要在 ImageLocation 中使用 "str" + x + "str"

 private void CreateEnemies()
    {
        Random rnd = new Random();
        int x = rnd.Next(1, kindOfEnemies + 1);
        PictureBox enemy = new PictureBox();
        int loc = rnd.Next(0, panel1.Height - enemy.Height);
        enemy.SizeMode = PictureBoxSizeMode.StretchImage;
        enemy.ImageLocation = "Aliens/" + x + ".png";

    }

我不明白你为什么要用这个。

+ 用于 string concatenation

它正在将字符串连接在一起。所以 "Aliens/" + 'x' + ".png" 的字符串值 'added' 在一起

假设:

int x = 1

输出字符串将是

"Aliens/1.png"

这是一种随机化您获得的外星人图像的方法。

您的解决方案有一个名为 Aliens 的文件夹,其中包含名为 0.png1.png2.png 等的文件。每个文件都有一个 "alien" 的图像,您的程序将其加载到 PictureBox 中。您的代码使用字符串连接随机选择这些文件之一。

在 C# 6 及更高版本中,您可以使用字符串插值:

enemy.ImageLocation = $"Aliens/{x}.png";

+运算符用于相加。如果用在字符串上,它不会添加两个字符串,而是将它们连接起来:

var text = "Hello" + "World" + "String";
Console.WriteLine(text); // Prints "HelloWorldString"

所以上面的代码只是构造了一个字符串。因为变量x不是int类型,.Net会自动调用.ToString().

int x = 5;
var text1 = "Aliens/" + x +".png"; // is the same as below.
var text2 = "Aliens/" + x.ToString() +".png"; // is the same as above.

Console.WriteLine(text); // Prints "Aliens/5.png"

在 C# 版本 6 及更高版本中,您还可以使用字符串插值,这使事情变得更加清晰:

var text1 = $"Aliens/{x}.png"; // is the same as below.
var text2 = $"Aliens/{x.ToString()}.png"; // is the same as above.

使用字符串插值,您可以将变量嵌入到字符串中,方法是将它们放在花括号中。

请注意,字符串必须以 $ 开头。