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
- SynchronizationContext.cs
- XmlnsDefinitionAttribute.cs
- IdnMapping.cs
- ItemsChangedEventArgs.cs
- DayRenderEvent.cs
- recordstatescratchpad.cs
- TableRowCollection.cs
- RuntimeHelpers.cs
- XmlDataLoader.cs
- XmlUrlResolver.cs
- NativeCppClassAttribute.cs
- _NTAuthentication.cs
- SourceSwitch.cs
- FixedBufferAttribute.cs
- GradientStop.cs
- HttpCookieCollection.cs
- CryptoConfig.cs
- PreviewKeyDownEventArgs.cs
- Baml2006ReaderFrame.cs
- HwndSource.cs
- AnimationStorage.cs
- AccessDataSourceView.cs
- VScrollBar.cs
- RsaSecurityToken.cs
- DisplayNameAttribute.cs
- ObjectDataSourceMethodEventArgs.cs
- Command.cs
- PagesChangedEventArgs.cs
- CallId.cs
- CorrelationActionMessageFilter.cs
- SQLMoney.cs
- RadialGradientBrush.cs
- documentsequencetextcontainer.cs
- PolyBezierSegment.cs
- OleDbWrapper.cs
- xmlfixedPageInfo.cs
- EditCommandColumn.cs
- DataKey.cs
- CompositeDispatchFormatter.cs
- isolationinterop.cs
- BaseHashHelper.cs
- BinaryReader.cs
- MulticastOption.cs
- CustomErrorCollection.cs
- OleTxTransactionInfo.cs
- URLAttribute.cs
- VirtualPathProvider.cs
- GeneralTransform2DTo3D.cs
- SpecularMaterial.cs
- SystemIPv6InterfaceProperties.cs
- ValidationHelpers.cs
- FieldDescriptor.cs
- DbConnectionInternal.cs
- DnsEndpointIdentity.cs
- XmlSchemaInferenceException.cs
- ApplicationManager.cs
- EventLogPermissionEntry.cs
- WebException.cs
- OdbcConnectionString.cs
- WebPartConnectionsConnectVerb.cs
- BitmapImage.cs
- util.cs
- HttpRawResponse.cs
- ParseElementCollection.cs
- CodeSnippetCompileUnit.cs
- TypeConverterAttribute.cs
- EntityDataSourceWrapperCollection.cs
- TemplateEditingVerb.cs
- Point3DAnimationBase.cs
- Convert.cs
- DetailsViewModeEventArgs.cs
- MappedMetaModel.cs
- LinkArea.cs
- MetadataSource.cs
- PreviewPrintController.cs
- ColumnHeaderConverter.cs
- DataTemplateSelector.cs
- UInt32Storage.cs
- XmlUTF8TextWriter.cs
- XmlDictionaryReaderQuotas.cs
- Accessible.cs
- QilScopedVisitor.cs
- Parallel.cs
- ToolZone.cs
- BuildManager.cs
- Image.cs
- Container.cs
- ContentElement.cs
- ChameleonKey.cs
- DataGridViewHitTestInfo.cs
- PeerInvitationResponse.cs
- Funcletizer.cs
- ObjectHandle.cs
- LocatorGroup.cs
- CodeTypeReferenceExpression.cs
- XamlFilter.cs
- UserControl.cs
- RectConverter.cs
- WpfGeneratedKnownProperties.cs
- EditCommandColumn.cs