Pregunta

Me estoy poniendo un "código inalcanzable detectado" mensaje en Visual Studio en el punto i ++ en mi código de abajo. ¿Puedes ver lo que he hecho mal?

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;
    }
}
¿Fue útil?

Solución

El problema es que esto en realidad no es un bucle. Usted no tiene ninguna condición en la ruptura por lo que es equivalente podría escribir algo así como

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

Por otra parte hay que corregir con algo como

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

   if(someConditionHolds)
      break;
}

Otros consejos

Estás rompiendo fuera del circuito antes del final de la primera iteración.

El problema es que debido a que break; en el bucle sin posibilidad de que hacer cualquier otra cosa, no se alcanzará el incremento de i (i++).

A pesar de que se solucione el problema que tengo que decirte esto,  sólo se puede utilizar el método CreateSubKey () para su propósito. Creo que es una mejor opción. :)

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

También puede terminar encima de conseguir código inalcanzable si se utiliza decir, por ejemplo Entity Framework, y que no añadir que la referencia a ese proyecto.

Supongamos que tiene varios proyectos como un proyecto capa de datos, unas clases de dominio, a continuación, crear una aplicación de consola para realizar pruebas o lo que sea y se hace referencia a dónde está su dbcontext está en, pero si usted no utiliza decir Nuget y añadir en EF , obtendrá código inalcanzable al intentar escribir un bucle etc ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top