你好,我是很新的C#,所以我不能完全確定什麼,我試圖做的是可能的,C#在列表獲取屬性導致堆棧溢出
我基本上是試圖設置,獲取屬性上一個列表, ,列表加載它會從另一個列表中讀取信息,方法是:
如果父列表是空的,創建一個新的列表 否則遍歷父列出的元素和處理每個相應
但是get方法會導致堆棧溢出,並將其運行調試器它似乎只是一遍又一遍的運行,直到儘管它已經打堆甚至吹和處理我return語句
下面是代碼:
public ICollection<History> History
{
get {
if (HistoryKeyCount == 0)//HistoryKeyCount = Count of Parent List
{
History = new List<Histories>();
}
else
{
History = new List<Histories>();//Created again because after each read object is dropped from memory
foreach (HistoryKey x in ParentList)
{
if (x.Key == null)
{
// Do nothing
}
else
History.Add(ObjectFinder.FindObject<ParentList>(x.Key));
}
}
return History;
}
set {
//Not implemented yet
}
}
會發生什麼事是它進入GET方法,達到if語句,創建新對象,然後返回它,然後重複執行,直到發生stackoverflow異常爲止
問題不在於ObjectFinder類或創建新方法,這些都不是發生錯誤時到達。
我原本以爲這是一個新的對象是在if語句的每個實例之後創建的,但是在添加一個標誌之後,只有在問題仍然存在時纔會創建。
有沒有人曾經遇到過這個問題?因爲它讓我難住!
----編輯--- 我忘了提,我使用了.NET裸對象框架,它很可能是問題
你在哪裏調用get方法?發佈該代碼。 –
同時發佈「歷史」的定義 –
我們可以假設歷史來自'ClaimHistory'嗎? – Kane