Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / Collections / Generic / IDictionary.cs / 1305376 / IDictionary.cs
// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
/*============================================================
**
** Interface: IDictionary
**
** [....]
**
**
** Purpose: Base interface for all generic dictionaries.
**
**
===========================================================*/
namespace System.Collections.Generic {
using System;
using System.Diagnostics.Contracts;
// An IDictionary is a possibly unordered set of key-value pairs.
// Keys can be any non-null object. Values can be any object.
// You can look up a value in an IDictionary via the default indexed
// property, Items.
[ContractClass(typeof(IDictionaryContract<,>))]
public interface IDictionary : ICollection>
{
// Interfaces are not serializable
// The Item property provides methods to read and edit entries
// in the Dictionary.
TValue this[TKey key] {
get;
set;
}
// Returns a collections of the keys in this dictionary.
ICollection Keys {
get;
}
// Returns a collections of the values in this dictionary.
ICollection Values {
get;
}
// Returns whether this dictionary contains a particular key.
//
bool ContainsKey(TKey key);
// Adds a key-value pair to the dictionary.
//
void Add(TKey key, TValue value);
// Removes a particular key from the dictionary.
//
bool Remove(TKey key);
bool TryGetValue(TKey key, out TValue value);
}
[ContractClassFor(typeof(IDictionary<,>))]
internal class IDictionaryContract : IDictionary
{
TValue IDictionary.this[TKey key] {
get { return default(TValue); }
set { }
}
ICollection IDictionary.Keys {
get {
Contract.Ensures(Contract.Result>() != null);
return default(ICollection);
}
}
// Returns a collections of the values in this dictionary.
ICollection IDictionary.Values {
get {
Contract.Ensures(Contract.Result>() != null);
return default(ICollection);
}
}
bool IDictionary.ContainsKey(TKey key)
{
return default(bool);
}
void IDictionary.Add(TKey key, TValue value)
{
}
bool IDictionary.Remove(TKey key)
{
//Contract.Ensures(Contract.Result() == false || ((ICollection>)this).Count == Contract.OldValue(((ICollection>)this).Count) - 1); // not threadsafe
return default(bool);
}
bool IDictionary.TryGetValue(TKey key, out TValue value)
{
value = default(TValue);
return default(bool);
}
#region ICollection> Members
void ICollection>.Add(KeyValuePair value)
{
//Contract.Ensures(((ICollection>)this).Count == Contract.OldValue(((ICollection>)this).Count) + 1); // not threadsafe
}
bool ICollection>.IsReadOnly
{
get { return default(bool); }
}
int ICollection>.Count
{
get {
Contract.Ensures(Contract.Result() >= 0);
return default(int);
}
}
void ICollection>.Clear()
{
}
bool ICollection>.Contains(KeyValuePair value)
{
// Contract.Ensures(((ICollection>)this).Count > 0 || Contract.Result() == false); // not threadsafe
return default(bool);
}
void ICollection>.CopyTo(KeyValuePair[] array, int startIndex)
{
//Contract.Requires(array != null);
//Contract.Requires(startIndex >= 0);
//Contract.Requires(startIndex + ((ICollection>)this).Count <= array.Length);
}
bool ICollection>.Remove(KeyValuePair value)
{
// No information if removal fails.
return default(bool);
}
IEnumerator> IEnumerable>.GetEnumerator()
{
Contract.Ensures(Contract.Result>>() != null);
return default(IEnumerator>);
}
IEnumerator IEnumerable.GetEnumerator()
{
Contract.Ensures(Contract.Result() != null);
return default(IEnumerator);
}
#endregion
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CompiledAction.cs
- WebChannelFactory.cs
- PageThemeParser.cs
- NotFiniteNumberException.cs
- CodeSubDirectoriesCollection.cs
- webclient.cs
- WebPartManager.cs
- EntityDataSourceViewSchema.cs
- IncrementalCompileAnalyzer.cs
- PrefixQName.cs
- IndentedTextWriter.cs
- WindowsTooltip.cs
- XPathDocumentNavigator.cs
- IdentityManager.cs
- DataRecordObjectView.cs
- DataGridViewRowErrorTextNeededEventArgs.cs
- WsdlInspector.cs
- figurelengthconverter.cs
- ContentWrapperAttribute.cs
- DataServiceHostWrapper.cs
- SmtpNegotiateAuthenticationModule.cs
- LinqDataSourceDeleteEventArgs.cs
- HorizontalAlignConverter.cs
- ConfigXmlElement.cs
- ToolBarPanel.cs
- RequestTimeoutManager.cs
- BamlBinaryWriter.cs
- XhtmlBasicTextViewAdapter.cs
- StringFreezingAttribute.cs
- FusionWrap.cs
- HandleCollector.cs
- SingleAnimation.cs
- ProtectedConfigurationSection.cs
- RegexCaptureCollection.cs
- FixedTextBuilder.cs
- StackSpiller.cs
- FormsAuthenticationEventArgs.cs
- RadioButtonStandardAdapter.cs
- PeerResolverSettings.cs
- DependencyPropertyValueSerializer.cs
- SqlBooleanizer.cs
- SQLResource.cs
- PartialTrustVisibleAssembliesSection.cs
- WsdlBuildProvider.cs
- SplineKeyFrames.cs
- UTF7Encoding.cs
- precedingsibling.cs
- PathSegmentCollection.cs
- RepeatEnumerable.cs
- NativeMethods.cs
- ConsumerConnectionPointCollection.cs
- AutomationFocusChangedEventArgs.cs
- WindowsGrip.cs
- LambdaCompiler.cs
- BlockCollection.cs
- WebPartUserCapability.cs
- SchemaNames.cs
- XmlChoiceIdentifierAttribute.cs
- BitmapEffectInputConnector.cs
- DesignColumnCollection.cs
- FrameworkElementAutomationPeer.cs
- GridViewPageEventArgs.cs
- Metafile.cs
- QuotedStringFormatReader.cs
- XmlCompatibilityReader.cs
- WebSysDisplayNameAttribute.cs
- LayoutExceptionEventArgs.cs
- RemoteWebConfigurationHost.cs
- RegexParser.cs
- DetailsViewCommandEventArgs.cs
- AutomationFocusChangedEventArgs.cs
- HelloMessageCD1.cs
- GlyphShapingProperties.cs
- URLIdentityPermission.cs
- SQLByte.cs
- OperationInfoBase.cs
- ProcessProtocolHandler.cs
- SmuggledIUnknown.cs
- AssemblyBuilderData.cs
- XmlSecureResolver.cs
- IndexedDataBuffer.cs
- SqlTypeSystemProvider.cs
- EncryptedKeyHashIdentifierClause.cs
- StreamGeometry.cs
- ContainerControl.cs
- ConfigurationValues.cs
- System.Data.OracleClient_BID.cs
- VoiceSynthesis.cs
- DateTimeSerializationSection.cs
- ConstNode.cs
- SystemInformation.cs
- DelegateBodyWriter.cs
- RuleSettings.cs
- ProfileSettings.cs
- CodeIdentifier.cs
- Vector3DValueSerializer.cs
- WebResourceUtil.cs
- EnumValidator.cs
- TextBreakpoint.cs
- IsolatedStorageFile.cs