1

何らかの理由で、_nodeDependenciesリスト内の各アイテムを展開しようとするとIEnumerable<Node<T>>、13個のアイテムがあることが示されますが、展開を開始すると、コンテンツを表示できないと表示され、最終的には、クリックした後にデバッガーが停止します多くの + リスト内の項目を展開します。これが実行時にジェネリックがどのように機能するのか、それとも何なのかはわかりません。

public class Tree<T> where T : INode
{

    private readonly IEnumerable<T> _sourceDependencies;
    private IEnumerable<Node<T>> _nodeDependencies;
    public Node<T> RootNode { get; set; }
    public Dictionary<Node<T>, IList<Node<T>>> FlattenedMap { get; private set; }

    public Tree(T rootNode, IEnumerable<T> dependencies)
    {
        RootNode = new Node<T>(rootNode); 
        _sourceDependencies = dependencies;
    }

    public void BuildTree()
    {
        _nodeDependencies = ConvertDependenciesToNodes(_sourceDependencies);
        AddChildren();
    }

    private IEnumerable<Node<T>> ConvertDependenciesToNodes(IEnumerable<T> listToConvert)
    {
        IEnumerable<Node<T>> nodeList = listToConvert.Select(sourceNode => new Node<T>(sourceNode)).ToList();

        return nodeList;
    }
}

マウスオーバーしたときの意味_nodeDependencies = ConvertDependenciesToNodes(_sourceDependencies);

_nodeDependencies13項目と表示されているので、リストを展開してから、1つまたは2つの項目を展開しようとすると、問題が発生してデバッグが停止します

ここに画像の説明を入力

4

1 に答える 1

2

これが Generics の使用法と関係があるかどうかは疑わしいです。ラノーキンが言及しているように、タイムアウトの結果である可能性がはるかに高い.

ちょっとした回避策を作成するために試みることができるのは、[ウォッチ] ウィンドウで実際に見ているものを強化し、ドリルダウンすることです。

つまり、監視の代わりに (または監視に加えて)、監視を_nodeDependencies作成してみて、_nodeDependencies[0]何が表示されるかを確認してください。実際に検査したいレイヤーに到達するまで、このドリルダウン プロセスを続けます。

これが便利な理由 (特にIQueryable、データベースの結果などを調べたり、Web コンテキストで操作したりする場合) は、クリックするよりもシステムが自動的にドリルダウンする方がはるかに短い時間で済むためです。 IDE を使用した一連の結果 - したがって、タイムアウトが発生する前に、必要なものを確認するより良い機会が得られます。

于 2013-04-22T22:10:26.673 に答える