bool ICollection.IsSynchronized => false;
object ICollection.SyncRoot => this;
bool IDictionary.IsFixedSize => false;
bool IDictionary.IsReadOnly => false;
object IDictionary.this[object key]
{
get
{
if (IsCompatibleKey(key))
{
int idx = IndexOfKey((TKey)key);
if (idx >= 0) return values[idx];
}
return null;
}
set
{
VerifyKey(key); VerifyValueType(value);
// this[(TKey)key] = (TValue)value; // 待泛型索引器實作後啟用
}
}
ICollection IDictionary.Keys => GetKeyListHelper();
ICollection IDictionary.Values => GetValueListHelper();
void IDictionary.Add(object key, object value)
{ VerifyKey(key); VerifyValueType(value); Add((TKey)key, (TValue)value); }
bool IDictionary.Contains(object key)
=> IsCompatibleKey(key) && ContainsKey((TKey)key);
IDictionaryEnumerator IDictionary.GetEnumerator()
=> new Enumerator<TKey, TValue>(this);
void IDictionary.Remove(object key)
{
if (IsCompatibleKey(key))
{ /* this.Remove((TKey)key); 待實作 */ }
}
VerifyValueType 中的 (value != null || typeof(TValue).IsValueType) 判斷針對 Nullable<T> 設計:允許值型別為 null。此節完成非泛型介面骨架,銜接泛型介面實作。