2017-07-24 126 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"; 
相關問題