Ignore:
Timestamp:
Nov 23, 2007, 11:39:44 AM (16 years ago)
Author:
dai
Message:

StrPtr内の判定ミスを修正。
SPrintFクラス内のx64に対するコードを修正。
ArrayListクラスのIListインターフェイス実装を一旦保留。
ListクラスにIEnumeratable、IEnumeratorインターフェイスを実装(まだ実装中…)。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Include/Classes/System/Collections/Generic/List.ab

    r352 r386  
    55
    66Class List<T>
     7    Implements IEnumerable, IEnumerator
    78    items As *T
    89    size As Long
     10
     11    currentIndexForEnumerator As Long
    912
    1013    Sub Realloc( allocateSize As Long )
     
    125128        size--
    126129    End Sub
     130
     131    /*!
     132    @brief  IEnumeratorインターフェイスを取得する
     133    @author Daisuke Yamamoto
     134    @date   2007/11/19
     135    @return IEnumeratorインターフェイスが返る
     136    */
     137    Function GetEnumerator() As IEnumerator
     138        Return This
     139    End Function
     140
     141    /*!
     142    @brief  イテレータのカレントインデックスを増加させる
     143    @author Daisuke Yamamoto
     144    @date   2007/11/19
     145    @return 上限に達していなければTrueが、達していればFalseが返る
     146    */
     147    Function MoveNext() As Boolean
     148        If currentIndexForEnumerator >= size Then
     149            ' 上限に達した
     150            Return False
     151        End If
     152
     153        currentIndexForEnumerator ++
     154        Return True
     155    End Function
     156
     157    /*!
     158    @brief  イテレータをリセットする
     159    @author Daisuke Yamamoto
     160    @date   2007/11/19
     161    */
     162    Sub Reset()
     163        currentIndexForEnumerator = 0
     164    End Sub
     165
     166    /*!
     167    @brief  イテレータのカレントオブジェクトを取得する
     168    @author Daisuke Yamamoto
     169    @date   2007/11/19
     170    @return カレントオブジェクトが返る
     171    */
     172    Function Current() As Object
     173        Return items[currentIndexForEnumerator] As Object
     174    End Function
    127175End Class
    128176
Note: See TracChangeset for help on using the changeset viewer.