다음 코드는 지난 몇 개월 동안 NullReferenceException을 던져 줬지만 그 이유는 확실하지 않습니다. 코드는 제 것이 아니지만 제게는 꽤 똑바로 보입니다.사전에 항목을 추가하면 NullReferenceException이 발생합니다.
Type pageType = page.GetType();
if (_pages.TryGetValue(pageType, out value))
return value;
// The following line throws the exception
return _pages[pageType] = new MyPage(_section.Pages[page]);
[NullReferenceException: Object reference not set to an instance of an object.] System.Collections.Generic.Dictionary
2.Insert(TKey key, TValue value, Boolean add) +210 System.Collections.Generic.Dictionary
2.set_Item(TKey key, TValue value) +11
내가 생각할 수있는 유일한 방법은 그것을 분명히 that is not possible 사전 키로 사용하지만, 될 때 pageType
가 null 것입니다.
심플 호출하는 코드는 :
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
_mypage = GetPage();
}
또한 오류가 _section.Pages
함께 할 수 있다고 생각하지만, 섹션은 null는 아무것도 설정하지 않았다. .Pages[page]
이 null을 반환하면 MyPage
생성자가 반환됩니다. 그래서 나는 무엇을 놓치고 있습니까?
"MyPage"개체가 'GetHashCode'또는 'Equals'를 (를) 초과합니까? 이 클래스는 Dictionary 클래스가 객체에 대해 수행 할 수있는 두 가지 호출입니다. –