문제

아래 코드의 I ++ 지점에서 Visual Studio에서 "도달 할 수없는 코드 감지"메시지를 받고 있습니다. 내가 잘못한 일을 발견 할 수 있습니까?

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;
    }
}
도움이 되었습니까?

해결책

문제는 이것이 실제로 루프가 아니라는 것입니다. 휴식 시간에 어떤 조건이 없어서 같은 것을 쓸 수 있습니다.

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

또는 당신은 같은 것을 수정해야합니다

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

   if(someConditionHolds)
      break;
}

다른 팁

첫 번째 반복이 끝나기 전에 루프에서 벗어나고 있습니다.

문제는 당신이 때문입니다 break; 다른 일을 할 가능성이없는 루프에서 I의 증가i++)는 도달하지 못할 것입니다.

당신의 문제가 해결되었지만 이것을 말해야하지만, 당신은 당신의 목적을 위해 CreateSubkey () 메소드를 사용할 수 있습니다. 나는 그것이 더 나은 선택이라고 생각합니다. :)

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

예를 들어 Entity Framework와 같은 말을 사용하면 도달 할 수없는 코드를 얻을 수 있으며 해당 프로젝트에 대한 참조를 추가하지 않았습니다.

데이터 계층 프로젝트, 도메인 클래스와 같은 여러 프로젝트가 있다고 가정 해 보면 테스트를위한 콘솔 앱을 만들고 DBContext가있는 위치를 참조하지만 사용하지 않으면 NUGET를 사용하지 않으면 EF를 추가합니다. 루프 등을 쓰려고 할 때 코드를받을 수없는 코드를 얻으십시오 ...

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top