2017-08-05 6 views
-7

Ich bin wirklich verwirrt über ein so einfaches Problem. Der folgende Code wird nicht jedes Mal erhöht.C# 2015 int ++, ++ int, int + = 1, int = int +1; Ausgaben

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

meine Ausgabe sieht wie folgt aus:

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

kann mir jemand sagen, warum dies passiert?

Ich habe bereits versucht, es so zu lösen:

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

mit ihnen allen das gleiche Ergebnis bekam.

+0

Wo wird 'deviceId' definiert? –

+1

Welche Ausgabe erwarten Sie stattdessen? – Jasen

+6

Sie erhalten diese Ausgabe nicht von einem einzigen Aufruf an den Code, den Sie uns gezeigt haben - Sie würden "0" nicht zweimal als 'deviceId' sehen. Ich nehme an, dass Sie diesen Code mehrmals aufrufen. Bitte geben Sie eine [MCVE] an. –

Antwort

0

Problem sloved!

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

Ich habe das selectedIndexChangedEvent zum ComboBox, die die deviceId durch die selectedIndex der Combobox eingestellt werden. In der ersten Schleife wird also deviceId wieder auf 0 gesetzt.

Verwandte Themen