봐는 : 전달코드 실행이 'if'문에서 어떻게 이루어 졌습니까? 다음 코드에서
public static string GetCleanURL(string baseURL, string url)
{
string cleanUrl = url.ToLower();
if (cleanUrl.StartsWith("http://"))
{//It already starts with http:// It is already in the correct form return it.
return cleanUrl;
}
'URL'값은 "123.123.123.123:1234/myurl/withstuff.xml"입니다. 'if'문에서 'cleanUrl'의 값은 "123.123.123.123:1234/myurl/withstuff.xml"입니다. 그러나 어떤 이유로 코드 실행은 if 블록 내부로 들어가고 'return cleanUrl; 실행됩니다. 내 디버거의 '직접 실행 창'에 cleanUrl.StartsWith("http://")
를 연결하면
는, false를 반환 : 여기
은 'cleanUrl'에 대한 현재 값의 스크린 샷이다. 어느 것이 내가 기대할 것입니다. 그러나 실행은 어떻게 든 true로 반환 된 것처럼 if 블록으로 이동합니다.아무도이 방법에 대해 설명해주십시오.
나는 이것을 "풀다"라고 부르지 않을 것이다. 왜 그런 일이 일어 났는지, 어떤 것을 고쳤는지 알지 못한다. 너는 그것을 단지 다시 켜고 끄고 껐다. 껐다가 다시 켜십시오. 내 생각 엔 최적화 기능이 켜져있어 디버거에서 강조 표시된 행이 정확하지 않은 것 같습니다. 시체가 달렸는지 여부에 대한 황금 표준은 그 시체에 무언가를 인쇄하고 인쇄 된 것을 보는 것입니다. –
유닛 테스트를하고 있었고 코드를 업데이트 한 다음 테스트 하네스를 클릭하고 테스트를 실행했다고 추측합니다. 내 가정은 Visual Studio에서 소스 코드와 일치하도록 디버그 정보를 완전히 업데이트하지 않았다는 것입니다. 부부가 청소하고 재건 한 후에는 괜찮을 것 같습니다. 코드가 꽤 힘들어서 다른 무엇이 될지 모르겠습니다. 다른 아이디어가 있으면 알려주십시오. 나는 모든 일에 꽤 당황 스러웠다. 나는 더 이상 그것을하지 않기 때문에 기쁘다. .. – Curtis