2006-08-08 Duncan Mak <duncan@novell.com>
authorDuncan Mak <duncan@mono-cvs.ximian.com>
Wed, 9 Aug 2006 04:37:51 +0000 (04:37 -0000)
committerDuncan Mak <duncan@mono-cvs.ximian.com>
Wed, 9 Aug 2006 04:37:51 +0000 (04:37 -0000)
* ReadOnlyCollectionBase.cs (Count): Mark as virtual in
NET_2_0. Fixes #79033.

* ReadOnlyCollectionBaseTest.cs (TestZeroCountOnNew): Add test for
overriding Count in NET_2_0 for #79033.

svn path=/trunk/mcs/; revision=63516

mcs/class/corlib/System.Collections/ChangeLog
mcs/class/corlib/System.Collections/ReadOnlyCollectionBase.cs
mcs/class/corlib/Test/System.Collections/ChangeLog
mcs/class/corlib/Test/System.Collections/ReadOnlyCollectionBaseTest.cs

index 937c890babd5fc77e7ad1e7aa1e16e830d4e14d2..8a4202b9ad51d6d28d3dc2cd0a9a855311d08f5f 100644 (file)
@@ -1,3 +1,8 @@
+2006-08-08  Duncan Mak  <duncan@novell.com>
+
+       * ReadOnlyCollectionBase.cs (Count): Mark as virtual in
+       NET_2_0. Fixes #79033.
+
 2006-04-26  Atsushi Enomoto  <atsushi@ximian.com>
 
        * Comparer.cs : changed internal field from CultureInfo to
index 970ebab16f4504498ac20f23e5a2f6a613ed6b5d..14a6643c53f904b1d6a6e20e9462a1c297da99a0 100644 (file)
@@ -39,24 +39,28 @@ namespace System.Collections {
        [ComVisible(true)]
 #endif
        [Serializable]
-       public abstract class ReadOnlyCollectionBase : ICollection,     IEnumerable {
+       public abstract class ReadOnlyCollectionBase : ICollection, IEnumerable {
 
                // private instance properties
-               private System.Collections.ArrayList list;
+               private ArrayList list;
                
                // public instance properties
-               public int Count { get { return InnerList.Count; } }
+               public
+#if NET_2_0
+               virtual
+#endif         
+               int Count { get { return InnerList.Count; } }
                
                // Public Instance Methods
-               public System.Collections.IEnumerator GetEnumerator() { return InnerList.GetEnumerator(); }
+               public IEnumerator GetEnumerator() { return InnerList.GetEnumerator(); }
                
                // Protected Instance Constructors
                protected ReadOnlyCollectionBase() {
-                       this.list = new System.Collections.ArrayList();
+                       this.list = new ArrayList();
                }
                
                // Protected Instance Properties
-               protected System.Collections.ArrayList InnerList {get { return this.list; } }
+               protected ArrayList InnerList {get { return this.list; } }
                
                // ICollection methods
                void ICollection.CopyTo(Array array, int index) {
index c3a30c00e8aa58c84e3995412db3c17d133d939b..677953401a1a395761a52c4db1c8f648cb7e7841 100644 (file)
@@ -1,3 +1,8 @@
+2006-08-08  Duncan Mak  <duncan@novell.com>
+
+       * ReadOnlyCollectionBaseTest.cs (TestZeroCountOnNew): Add test for
+       overriding Count in NET_2_0 for #79033.
+
 2006-04-25  Atsushi Enomoto  <atsushi@ximian.com>
 
        * QueueTest.cs, SortedListTest.cs : many capacity-related tests are
index e30db01f97bb09662a9d2eedc976db8acbf6df27..98819d7d0d14749019acd0a5cc54676508b35f65 100644 (file)
@@ -18,6 +18,9 @@ namespace MonoTests.System.Collections {
                // We need a concrete class to test the abstract base class
                public class ConcreteReadOnlyCollection : ReadOnlyCollectionBase 
                {
+#if NET_2_0
+                       public override int Count { get { return -1; }}
+#endif
                }
 
                // Make sure that the Count is 0 for a new object
@@ -25,7 +28,11 @@ namespace MonoTests.System.Collections {
                {
                        ConcreteReadOnlyCollection myCollection;
                        myCollection = new ConcreteReadOnlyCollection();
-                       Assert(0 == myCollection.Count);
+#if NET_2_0
+                       Assert (-1 == myCollection.Count);
+#else                                          
+                       Assert ( 0 == myCollection.Count);
+#endif                                 
                }
 
                // Make sure we get an object from GetEnumerator()