2013-02-10 34 views
1

我的下一個對象(樹構造體):設置數字屬性參照移動 - C#

public class someClass 
{ 

ObservableCollection<someClass> Children { get; } 
long NumOfSelectedChildren { get; set; } 
} 

//There is more properties but its not important for my question 

我需要掃描給定的「SomeClass的」對象,併爲每個節點進入房地產NumOfSelectedChildrenthe數設置他的孩子。

我寫了一些遞歸來完成這個任務,但我必須發送NumOfSelectedChildren屬性作爲參考。目前,當遞歸完成時,所有「NumOfSelectedChildren」屬性都等於0,因爲遞歸通過值而不是通過引用來移動參數。

當我真的嘗試將資源發送的「裁判」,我得到以下錯誤: 「錯誤23的屬性,索引器或動態成員訪問不可能會作爲傳出或引用參數傳遞」

我怎樣才能確保這個財產將通過引用而不是按價值發送?

謝謝。

回答

3

您還沒有表現出你如何更新NumOfSelectedChildren財產,所以讓我提議,不要求你按引用傳遞屬性的另一種解決方案:

public class someClass 
{ 
    ObservableCollection<someClass> Children { get; } 

    long NumOfSelectedChildren { get; set; } 

    int UpdateNumOfSelectedChildren() 
    { 
     return NumOfSelectedChildren = 
      Children.Sum(x => 1 + x.UpdateNumOfSelectedChildren()); 
    } 
}