나는 내 인생은 레거시 코드가이 일을하는 이유를 알아낼 수 없기 :빈 문자열을 HashTable.Add() 앞에 붙이면 "value가 예상 범위 내에 있지 않음"의 원인 일 수 있습니까?
HashSiteMapping.Add(sm.SiteNumber, sm.LocationNumber);
난 그냥 내 어깨를 으쓱 것 :
HashSiteMapping.Add(""+sm.SiteNumber, sm.LocationNumber);
...이 더 합리적인 것 같다 때 그리고이 코드의 일반적인 기괴함까지 밀어 붙이십시오. 그러나이 코드에서 "값이 예상 범위 내에 들지 않습니다."라는 메시지가 표시되고 이것이 문제가 될 수 있는지 궁금합니다. 값이 예상 범위를 벗어 ",
IEnumerator en = mFile.Map.Mappings.GetEnumerator();
while (en.MoveNext())
{
SiteMapping sm = (SiteMapping) en.Current;
if (!HashSiteMapping.Contains(sm.SiteNumber))
{
HashSiteMapping.Add(sm.SiteNumber, sm.LocationNumber);
}
}
...하지만 난 여전히 얻을 :
IEnumerator en = mFile.Map.Mappings.GetEnumerator();
while (en.MoveNext())
{
SiteMapping sm = (SiteMapping) en.Current;
HashSiteMapping.Add(""+sm.SiteNumber, sm.LocationNumber);
}
... 그리고 나는이 그것을 변경 : 풀러 컨텍스트에서 코드이 있었다 내가 famili하지 오전 HashSiteMapping이
HashSiteMapping은 간단한 HashTable입니다. SiteNumber는 int입니다. –
앞에 추가 된 빈 문자열은 컴파일러와 함께 처리되지 않습니다. –
오류가 발생한 행은 무엇입니까? 추가? 또한 빈 문자열을 추가하면 매개 변수가 int로 입력되지 않고 해당 매개 변수가 문자열로 변경됩니다. –