1

次のオブジェクト (ツリー構造のオブジェクト) があります。

public class someClass
{

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

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

特定の「someClass」オブジェクトをスキャンし、すべてのノードをプロパティ NumOfSelectedChildrenthe number Of his children に設定する必要があります。

このタスクを実行する再帰をいくつか書きましたが、参照として NumOfSelectedChildren プロパティを送信する必要があります。現在、再帰が終了すると、再帰は参照ではなく値によってパラメーターを移動するため、すべての「NumOfSelectedChildren」プロパティは0に等しくなります。

プロパティを "ref" として送信しようとすると、次のエラーが表示されます。

このプロパティが値ではなく参照によって送信されることを確認するにはどうすればよいですか?

ありがとう。

4

1 に答える 1

3

プロパティを更新する方法を示していないNumOfSelectedChildrenので、参照によってプロパティを渡す必要のない代替ソリューションを提案させてください。

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

    long NumOfSelectedChildren { get; set; }

    int UpdateNumOfSelectedChildren()
    {
       return NumOfSelectedChildren =
           Children.Sum(x => 1 + x.UpdateNumOfSelectedChildren());
    }
}
于 2013-02-10T07:45:21.493 に答える