Domanda

sto diventando un "codice irraggiungibile rilevato" messaggio in Visual Studio al punto i ++ nel mio codice qui sotto. Riuscite ad individuare quello che ho fatto di sbagliato?

try
{
    RegistryKey OurKey = Registry.CurrentUser;
    OurKey.CreateSubKey("Software\\Resources\\Shared");
    OurKey = OurKey.OpenSubKey("Software\\Resources\\Shared", true);
    for (int i = 0; i < cmbPaths.Items.Count; i++) //<---- problem with i
    {
        OurKey.SetValue("paths" + i, cmbPaths.Items[i]);
        break;
    }
}
È stato utile?

Soluzione

Il problema è che questo in realtà non è un ciclo. Non avete alcuna condizione in contropiede così si potrebbe equivalentemente scrivere qualcosa come

if(cmbPath.Items.Count > 0)
{
   OurKey.SetValue("paths" + 0, cmbPaths.Items[0]);
}

In alternativa si deve correggere con qualcosa di simile

for (int i = 0; i < cmbPaths.Items.Count; i++) 
{
   OurKey.SetValue("paths" + i, cmbPaths.Items[i]);

   if(someConditionHolds)
      break;
}

Altri suggerimenti

Si sta rompendo fuori dal giro prima della fine della prima iterazione.

Il problema è che perché si break; nel ciclo con nessuna possibilità di esso fare qualsiasi altra cosa, non verrà mai raggiunto l'incremento di i (i++).

Anche se il vostro problema è risolto ho bisogno di dirvi questo,  si può semplicemente utilizzando il metodo CreateSubKey () per il vostro scopo. Penso che sia una scelta migliore. :)

//Creates a new subkey or opens an existing subkey for write access.
var ourKey = Registry.CurrentUser.CreateSubKey("Software\\Resources\\Shared");

Si può anche finire per ottenere codice irraggiungibile se si usa dire per esempio Entity Framework, e non hai aggiungere che il riferimento a tale progetto.

Diciamo che sono diversi progetti come A Progetto Data Layer, a classi di dominio, quindi si crea una console app per il test o qualsiasi altra cosa e si fa riferimento in cui il vostro DbContext è, ma se non si usa dire NuGet e aggiungere in EF , si otterrà il codice irraggiungibile quando si cerca di scrivere un ciclo ecc ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top