Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / ArraySegment.cs / 1305376 / ArraySegment.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Class: ArraySegment** ** ** Purpose: Convenient wrapper for an array, an offset, and ** a count. Ideally used in streams & collections. ** Net Classes will consume an array of these. ** ** ===========================================================*/ using System.Runtime.InteropServices; using System.Diagnostics.Contracts; namespace System { [Serializable] public struct ArraySegment { private T[] _array; private int _offset; private int _count; public ArraySegment(T[] array) { if (array == null) throw new ArgumentNullException("array"); Contract.EndContractBlock(); _array = array; _offset = 0; _count = array.Length; } public ArraySegment(T[] array, int offset, int count) { if (array == null) throw new ArgumentNullException("array"); if (offset < 0) throw new ArgumentOutOfRangeException("offset", Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum")); if (count < 0) throw new ArgumentOutOfRangeException("count", Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum")); if (array.Length - offset < count) throw new ArgumentException(Environment.GetResourceString("Argument_InvalidOffLen")); Contract.EndContractBlock(); _array = array; _offset = offset; _count = count; } public T[] Array { get { return _array; } } public int Offset { get { return _offset; } } public int Count { get { return _count; } } public override int GetHashCode() { return _array.GetHashCode() ^ _offset ^ _count; } public override bool Equals(Object obj) { if (obj is ArraySegment ) return Equals((ArraySegment )obj); else return false; } public bool Equals(ArraySegment obj) { return obj._array == _array && obj._offset == _offset && obj._count == _count; } public static bool operator ==(ArraySegment a, ArraySegment b) { return a.Equals(b); } public static bool operator !=(ArraySegment a, ArraySegment b) { return !(a == b); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Class: ArraySegment ** ** ** Purpose: Convenient wrapper for an array, an offset, and ** a count. Ideally used in streams & collections. ** Net Classes will consume an array of these. ** ** ===========================================================*/ using System.Runtime.InteropServices; using System.Diagnostics.Contracts; namespace System { [Serializable] public struct ArraySegment { private T[] _array; private int _offset; private int _count; public ArraySegment(T[] array) { if (array == null) throw new ArgumentNullException("array"); Contract.EndContractBlock(); _array = array; _offset = 0; _count = array.Length; } public ArraySegment(T[] array, int offset, int count) { if (array == null) throw new ArgumentNullException("array"); if (offset < 0) throw new ArgumentOutOfRangeException("offset", Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum")); if (count < 0) throw new ArgumentOutOfRangeException("count", Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum")); if (array.Length - offset < count) throw new ArgumentException(Environment.GetResourceString("Argument_InvalidOffLen")); Contract.EndContractBlock(); _array = array; _offset = offset; _count = count; } public T[] Array { get { return _array; } } public int Offset { get { return _offset; } } public int Count { get { return _count; } } public override int GetHashCode() { return _array.GetHashCode() ^ _offset ^ _count; } public override bool Equals(Object obj) { if (obj is ArraySegment ) return Equals((ArraySegment )obj); else return false; } public bool Equals(ArraySegment obj) { return obj._array == _array && obj._offset == _offset && obj._count == _count; } public static bool operator ==(ArraySegment a, ArraySegment b) { return a.Equals(b); } public static bool operator !=(ArraySegment a, ArraySegment b) { return !(a == b); } } } // 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
- HostedNamedPipeTransportManager.cs
- HttpFormatExtensions.cs
- PasswordRecovery.cs
- ObjectSpanRewriter.cs
- EntitySqlQueryCacheKey.cs
- QueueProcessor.cs
- ImageClickEventArgs.cs
- XmlSerializableServices.cs
- oledbmetadatacollectionnames.cs
- BlobPersonalizationState.cs
- DPCustomTypeDescriptor.cs
- GenericNameHandler.cs
- EllipticalNodeOperations.cs
- BitmapEffectGroup.cs
- CurrencyManager.cs
- TCEAdapterGenerator.cs
- XpsStructure.cs
- ToolboxItemLoader.cs
- BaseProcessor.cs
- TcpClientChannel.cs
- BCLDebug.cs
- WindowsProgressbar.cs
- Translator.cs
- XPathAxisIterator.cs
- PlatformNotSupportedException.cs
- FixedSOMPageConstructor.cs
- ToolTipAutomationPeer.cs
- _BaseOverlappedAsyncResult.cs
- TagPrefixCollection.cs
- OletxDependentTransaction.cs
- HtmlGenericControl.cs
- SettingsPropertyValueCollection.cs
- FixUp.cs
- FileLevelControlBuilderAttribute.cs
- GridView.cs
- StatusBarPanelClickEvent.cs
- HttpApplicationStateBase.cs
- LiteralTextParser.cs
- DataView.cs
- RoleService.cs
- PropertyNames.cs
- DataGridViewTextBoxEditingControl.cs
- StorageFunctionMapping.cs
- DNS.cs
- TracedNativeMethods.cs
- ComponentFactoryHelpers.cs
- AutoResetEvent.cs
- TextBoxBase.cs
- DialogResultConverter.cs
- TableItemProviderWrapper.cs
- Vector3DAnimation.cs
- XmlQueryTypeFactory.cs
- PageParser.cs
- StrongBox.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- RecognizerBase.cs
- PreviewControlDesigner.cs
- RemotingException.cs
- ByteConverter.cs
- NetStream.cs
- PeerDuplexChannel.cs
- Operand.cs
- InheritedPropertyDescriptor.cs
- RegexTree.cs
- ImportFileRequest.cs
- TransactionBridgeSection.cs
- OdbcConnectionFactory.cs
- SqlDataSourceConfigureSortForm.cs
- SrgsGrammar.cs
- GridViewDeletedEventArgs.cs
- ListMarkerLine.cs
- Console.cs
- DotExpr.cs
- SqlServices.cs
- CheckedListBox.cs
- SqlDataRecord.cs
- coordinatorfactory.cs
- MediaScriptCommandRoutedEventArgs.cs
- SymmetricCryptoHandle.cs
- DataBinding.cs
- SegmentTree.cs
- MetadataProperty.cs
- LocalTransaction.cs
- ModifierKeysValueSerializer.cs
- Dynamic.cs
- WebPartHelpVerb.cs
- MessageAction.cs
- EventManager.cs
- HttpListener.cs
- Decorator.cs
- SqlClientWrapperSmiStream.cs
- SqlTriggerContext.cs
- TypeKeyValue.cs
- Perspective.cs
- ExpressionVisitor.cs
- SafeThemeHandle.cs
- UnsafeNativeMethods.cs
- TextViewBase.cs
- DataView.cs
- SystemColors.cs