2017-08-05 72 views
-7

我真的很困惑這樣一個簡單的問題。以下代碼不會每次都增加。C#2015 int ++,++ int,int + = 1,int = int +1;問題

int deviceId = 0; 
DeviceCollection coll = DirectSound.GetDevices(); 
foreach (DeviceInformation dev in coll.Skip(1)) 
{ 
    comboBoxDevice.Items.Add(deviceId+": "+dev.Description); 
    deviceId++; 
    comboBoxDevice.SelectedIndex = 0; 
} 

我的輸出是這樣的:

0: speaker1 ..... 
0: speaker2 ..... 
1: speaker3 ..... 

有誰能夠說我爲什麼這個happend?

我已經嘗試解決這個問題這樣的:

++deviceId; 
deviceId += 1; 
deviceId = deviceId+1; 

與所有的人都得到了相同的結果。

+0

'deviceId' defind在哪裏? –

+1

您期望輸出什麼? – Jasen

+6

你不會從一次調用中得到你輸出給我們的代碼的輸出 - 你不會看到'0'作爲'deviceId'兩次。我的猜測是你多次調用這個代碼。請提供[mcve]。 –

回答

0

問題已解決!

 DeviceCollection coll = DirectSound.GetDevices(); 
     foreach (DeviceInformation dev in coll.Skip(1)) 
     { 
      comboBoxDevice.Items.Add(deviceId +": "+ dev.Description); 
      deviceId++;        
     } 
     comboBoxDevice.SelectedIndex = 0; 

我加入了selectedIndexChangedEvent到將被組合框的selectedIndex設置設備ID組合框。所以在第一個循環中,它會將deviceId再次設置爲0。

相關問題