public interface ICollection : IEnumerable {
void CopyTo(Array array, int index);
int Count { get; }
Object SyncRoot { get; }
bool IsSynchronized { get; }
}
public interface ICollection
int Count { get; }
bool IsReadOnly { get; }
void Add(T item);
void Clear();
bool Contains(T item);
void CopyTo(T[] array, int arrayIndex);
bool Remove(T item);
}
与ICollection相比,泛型ICollection
与Synchronization有关的方法被去掉了,原因是使用Framework提供的Wrapper并不能保证正确的Synchronization. 下面是一个例子:
Hashtable hashtable = Hashtable.Synchronized(new Hashtable());
if(!hashtable.Contains(key)) {
hashtable.Add(key, value);
}
Add方法还是有可能产生异常。用户有更多的信息来决定什么时候需要使用lock以及lock的范围。
例外Remove方法返回bool,用于指明指定的值是否存在于Collection中。
打印 | 张贴于 2004-07-08 09:49:00 | Tag:Generics
留言反馈
wzx2855@hotmail.com