私の人生では、レガシーコードがこれを行っている理由を理解できません。
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;
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);
}
}
...しかし、「値が期待される範囲内にありません」というメッセージが表示されます