ZHUGEL

导航

 

     .net中有一个接口为IEnumerable,该接口只有一个方法GetEnumerator(),返回类型为IEnumrator.当某类A实现这个接口时,则可以对类A进行迭代访问.在实现GetEnumerator()方法中将会用到yield return,yield break;

       yield return 表示在迭代中下一个迭代时返回的数据.

       yield break表示跳出迭代.

      例如:

    class A:IEnumerable

{

       private int[] array=new int[10];

       public IEnumrator GetEnumerator()

          {

                   for(int i=0;i<10;i++)

                      {

                           yield return array[i];

                      }                     

          }

}

//如果你只想让用户访问ARRAY的前8个数据,则可做如下修改.这时将会用到yield break,修改函数如下

  public IEnumrator GetEnumerator()

          {

                   for(int i=0;i<10;i++)

                      {

                            if(i<8)

                           yield return array[i];

                             else

                              yield break;

                      }                     

          }

这样,则只会返回前8个数据.

posted on 2010-03-09 19:29  ZHUGEL  阅读(4203)  评论(0)    收藏  举报