source: trunk/ab5.0/ablib/src/Classes/System/Collections/ObjectModel/ReadOnlyCollection.ab@ 631

Last change on this file since 631 was 631, checked in by NoWest, 16 years ago

List<T>、Stack<T>、Queue<T>を相互にIEnumerator<T>を使って変換できるようにしました。

List<T>クラスからReadOnlyCollectionの呼び出しがコンパイルできません。
どうしても問題を再現できなかったので、皆さんの所でも問題が発生するか確認のためにupしておきます。
やっぱり問題がおきたら、RevertするかListのAsReadOnlyメソッドをコメントアウトしてください。

File size: 2.8 KB
Line 
1
2Namespace System
3Namespace Collections
4Namespace ObjectModel
5
6
7Class ReadOnlyCollection<T>
8 Implements System.Collections.Generic.IList<T>
9 list As System.Collections.Generic.IList<T>
10
11Public
12 'Collection クラスの新しいインスタンスを初期化します。
13 Sub ReadOnlyCollection ()
14 Dim l = New System.Collections.Generic.List<T>
15 This.list = l
16 End Sub
17 Sub ReadOnlyCollection ( list As System.Collections.Generic.IList<T> )
18 This.list = list
19 End Sub
20
21Public
22 'Collection に実際に格納されている要素の数を取得します。
23 Override Function Count () As Long
24 Return This.list.Count()
25 End Function
26
27 'Item 指定したインデックスにある要素を取得します。
28 Sub Operator[] ( index As Long, item As T )
29 Throw New NotSupportedException
30 End Sub
31 Function Operator[] ( index As Long ) As T
32 Return This.list.Item(index)
33 End Function
34
35Protected
36 'Collection をラップする IList ラッパーを取得します。
37 Function Items () As Generic.IList<T>
38 Return This
39 End Function
40
41Public
42 'Collection の末尾にオブジェクトを追加します。
43 Override Sub Add ( item As T )
44 Throw New NotSupportedException
45 End Sub
46
47 'Collection からすべての要素を削除します。
48 Override Sub Clear ()
49 Throw New NotSupportedException
50 End Sub
51
52 'ある要素が Collection 内に存在するかどうかを判断します。
53/* Function Contains ( item As T ) As Boolean
54 End Function*/
55
56 'Collection 全体を互換性のある 1 次元の Array にコピーします。コピー操作は、コピー先の配列の指定したインデックスから始まります。
57 /*CopyTo*/
58
59 'Collection を反復処理する列挙子を返します。
60 Override Function GetEnumerator () As System.Collections.Generic.IEnumerator<T>
61 Return This.list.GetEnumerator()
62 End Function
63
64 '指定したオブジェクトを検索し、Collection 全体内で最初に見つかった位置の 0 から始まるインデックスを返します。
65 Override Function IndexOf ( item As T ) As Long
66 Return This.list.IndexOf(item)
67 End Function
68
69 'Collection 内の指定したインデックスの位置に要素を挿入します。
70 Override Sub Insert ( index As Long, item As T )
71 Throw New NotSupportedException
72 End Sub
73
74 'IList が読み取り専用かどうかを示す値を取得します。
75 Override Function IsReadOnly () As Boolean
76 Return True
77 End Function
78
79 'Collection 内で最初に見つかった特定のオブジェクトを削除します。
80 Override Function Remove ( item As T ) As Boolean
81 Throw New NotSupportedException
82 End Function
83
84 'Collection の指定したインデックスにある要素を削除します。
85 Override Sub RemoveAt ( index As Long )
86 Throw New NotSupportedException
87 End Sub
88
89 '現在の Object を表す String を返します。 (Object から継承されます。)
90 Override Function ToString () As String
91 Dim string = New Text.StringBuilder
92 Dim i As Long
93 For i = 0 To ELM(This.list.Count())
94 string.Append(This.list.Item[i]).Append(Ex"\r\n")
95 Next
96 Return string.ToString
97 End Function
98
99End Class
100
101End Namespace
102End Namespace
103End Namespace
Note: See TracBrowser for help on using the repository browser.