这是什么意思?匿名for-iterator

时间:2013-01-28 17:47:43

标签: c#

我正在查看某些System.Collections.Concurrent类(Framework 4.0)的反编译源代码。我在很多地方看到这样的代码:

for (int index = 0; index < buckets.Length; ++index)
{
    for (
            ConcurrentDictionary<TKey, TValue>.Node node1 = buckets[index]; 
            node1 != null; 
            {
                ConcurrentDictionary<TKey, TValue>.Node node2;
                node1 = node2;
            })
    {
        node2 = node1.m_next;
        int bucketNo;
        int lockNo;
        this.GetBucketAndLockNo(
            node1.m_hashcode, 
            out bucketNo, 
            out lockNo, 
            nodeArray.Length);
        nodeArray[bucketNo] = new ConcurrentDictionary<TKey, TValue>.Node(
            node1.m_key, 
            node1.m_value, 
            node1.m_hashcode, 
            nodeArray[bucketNo]);
        checked { ++numArray[lockNo]; }
    }
}

有人可以解释for-iterator的情况吗? (我的意思是那篇文章

{
    ConcurrentDictionary<TKey, TValue>.Node node2;
    node1 = node2;
}

我查看了4.0的C#语言规范,但老实说,他不具备阅读这些内容的技能,并且非常感谢有人能提供的清晰度,特别是在这种功能成为可能的语言版本中。

0 个答案:

没有答案