2017-07-24 125 views
-4

为什么要在ImageLocation中使用"str" + x + "str"“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"; 

    } 

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

+1

它在路径中插入一个(随机)数字x,因此它有效地加载了一张随机图像。 – TaW

+1

您不明白使用随机数构建图像路径背后的语法或动机? –

+0

@Md Rakibul伊斯兰教如果其中一个答案解决了您的问题,请将其标记为解决关闭此线程。如果不是,请澄清仍然缺少的内容。 – Iqon

回答

2

+运营商用于添加。如果在字符串中使用它不会增加两个字符串,但将它们连接起来:

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#及以上版本,你也可以用串插,这使得事情更加清楚一点:

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

用绳子插值可以使嵌入变量转换为字符串,将它们放置在卷曲括号。

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

0

它连接字符串一起。所以“Aliens /”+ 'x' +“.png”的字符串值正在'加'在一起。

比方说:

int x = 1 

输出字符串将

"Aliens/1.png" 
0

这是随机,你得到的外星人形象的一种方法。

您的解决方案有一个名为Aliens的文件夹,其中包含名为0.png,1.png,2.png等的文件。每个文件都有一个“外星人”的图像,您的程序将其加载到PictureBox中。您的代码使用字符串连接随机选取其中一个文件。

用C#6和更新,您可以使用字符串插值:

enemy.ImageLocation = $"Aliens/{x}.png"; 
相关问题