C 2 0中使用yield關鍵字簡化列舉器的實現

2021-12-29 20:50:24 字數 814 閱讀 5479

我們知道要使用foreach語句從客戶端**中呼叫迭代器,必需實現ienumerable介面來公開列舉器,ienumerable是用來公開列舉器的,它並不實現列舉器,要實現列舉器必需實現ienumerator介面。現在用 yield關鍵字,您不必實現整個 ienumerator 介面。從而簡化了**. 而且可以實現更加靈活的列舉。

如下**:

1// declare the collection:

2public class samplecollection

3; 9    }

1011    public system.collections.ienumerable buildcollection()

12   

17    }

18}19

20class mainclass

2132    }

33}34

或者code

1class program

2   

11        }

12    }

1314    public class samplecollection:ienumerable

15    ;

21        }

2223        public ienumerator getenumerator()

24       

29        }

30    }

我們在注意的是c#2.0增加了yield關鍵字,簡化了對列舉器的實現。但他只不過是在編譯器上的改變,實際上是由編譯器幫我們實現了ienumerator介面的列舉器.

C 2 0中使用yield關鍵字簡化列舉器的實現

我們知道要使用foreach語句從客戶端 中呼叫迭代器,必需實現ienumerable介面來公開列舉器,ienumerable是用來公開列舉器的,它並不實現列舉器,要實現列舉器必需實現ienumerator介面。現在用 yield關鍵字,您不必實現整個 ienumerator 介面。從而簡化了 而且...

C 中yield關鍵字

yield關鍵字向編譯器指示它所在的方法是迭代器塊。編譯器生成乙個類來實現迭代器塊中標的行為。在迭代器中,yieid關鍵字與return關鍵字結合使用,向列舉器物件提供值。這是乙個返回值,例如,在foreach語句的每一次迴圈中返回的值。yieid關鍵字也可與break結合使用,表示迭代結束。usi...

c 2 0語法新關鍵字 partial

再 使得使用該書的您很容易過渡到.net2.0,或者說讓您更明白微軟為什麼這麼做,看完本文您就應該明白是因為需要才促使語言的公升級,而不是因為公升級促使需要 請看下面示例 publicpartialclass sampleclass publicpartialclass sampleclass 這裡...