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

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

Location:
trunk/Include/Classes/System/Collections
Files:
3 edited

Legend:

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

    r381 r386  
    77
    88Class ArrayList
    9     Implements IList /*, ICollection, IEnumerable, ICloneable*/
     9    'Implements IList /*, ICollection, IEnumerable, ICloneable*/
    1010
    1111    pObject As *Object
     
    7676    End Function
    7777
    78     /*Const*/ Override Function IsFixedSize() As Boolean
     78    /*Const*/ Function IsFixedSize() As Boolean
    7979        Return False
    8080    End Function
    8181
    82     /*Const*/ Override Function IsReadOnly() As Boolean
     82    /*Const*/ Function IsReadOnly() As Boolean
    8383        Return False
    8484    End Function
     
    219219    End Function
    220220
    221     /*Const*/ Override Function IndexOf(object As Object) As Long
     221    /*Const*/ Function IndexOf(object As Object) As Long
    222222        Return IndexOf(object, 0, size)
    223223    End Function
     
    238238    End Function
    239239
    240     Override Sub Insert(i As Long, object As Object)
     240    Sub Insert(i As Long, object As Object)
    241241        SetLeastCapacity(size + 1)
    242242        memmove(VarPtr(pObject[i + 1]), VarPtr(pObject[i]), SizeOf (*Object) * (size - i))
     
    261261    End Function
    262262
    263     Override Sub Remove(object As Object)
     263    Sub Remove(object As Object)
    264264        Dim i = IndexOf(object)
    265265        If i > 0 Then
     
    268268    End Sub
    269269
    270     Override Sub RemoveAt(i As Long)
     270    Sub RemoveAt(i As Long)
    271271        RemoveRange(i, 1)
    272272    End Sub
     
    307307    End Sub
    308308
    309     /*Override*/ Override Function ToString() As String
     309    Override Function ToString() As String
    310310        Return "System.Collections.ArrayList"
    311311    End Function
  • 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
  • trunk/Include/Classes/System/Collections/misc.ab

    r355 r386  
    4949Interface IEnumerable
    5050    ' Method
    51 '   Function GetEnumerator() As *IEnumerator
     51    Function GetEnumerator() As IEnumerator
    5252End Interface
    5353
     
    5757    Sub Reset()
    5858    ' Property
    59     Function Current() As *Object
     59    Function Current() As Object
    6060End Interface
    6161
Note: See TracChangeset for help on using the changeset viewer.