Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / clr / src / BCL / System / ArraySegment.cs / 1 / 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; 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"); _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")); _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; 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"); _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")); _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
- ZipIOLocalFileBlock.cs
- DeclarativeCatalogPart.cs
- EditorServiceContext.cs
- UnmanagedMemoryStream.cs
- SiteMapNodeItemEventArgs.cs
- FlowchartDesigner.Helpers.cs
- SafeNativeMethodsMilCoreApi.cs
- JsonCollectionDataContract.cs
- HeaderUtility.cs
- SecuritySessionServerSettings.cs
- DesignerAttributeInfo.cs
- MetadataSerializer.cs
- RectangleF.cs
- TextSerializer.cs
- DbBuffer.cs
- XmlDataSourceNodeDescriptor.cs
- RoleExceptions.cs
- SafeMemoryMappedViewHandle.cs
- MenuAutoFormat.cs
- OpenCollectionAsyncResult.cs
- SessionPageStatePersister.cs
- configsystem.cs
- SafeSerializationManager.cs
- XmlQueryStaticData.cs
- DocumentGridContextMenu.cs
- HtmlInputButton.cs
- Group.cs
- UdpTransportBindingElement.cs
- RuntimeHelpers.cs
- MTConfigUtil.cs
- SiteMapHierarchicalDataSourceView.cs
- PartialTrustVisibleAssembliesSection.cs
- BindingContext.cs
- WebHttpElement.cs
- AsyncPostBackErrorEventArgs.cs
- InstanceKeyNotReadyException.cs
- GridViewRow.cs
- DataGridViewCellValidatingEventArgs.cs
- FilterableData.cs
- UIElementPropertyUndoUnit.cs
- SiteMapHierarchicalDataSourceView.cs
- DependencyObject.cs
- PassportAuthenticationModule.cs
- EngineSite.cs
- ScrollableControl.cs
- FlowDocument.cs
- CookieHandler.cs
- DatePicker.cs
- prompt.cs
- AsnEncodedData.cs
- WindowsScrollBarBits.cs
- ImageCodecInfo.cs
- XamlParser.cs
- TimeStampChecker.cs
- SafeEventLogReadHandle.cs
- LockingPersistenceProvider.cs
- SQLMoney.cs
- ReadContentAsBinaryHelper.cs
- HotSpot.cs
- UpdatePanel.cs
- TypefaceMap.cs
- EncryptedReference.cs
- StyleXamlParser.cs
- TypeDelegator.cs
- SubMenuStyleCollection.cs
- OdbcConnectionHandle.cs
- MethodBuilderInstantiation.cs
- QualificationDataAttribute.cs
- RecognitionResult.cs
- ImmComposition.cs
- MetadataProperty.cs
- TextParentUndoUnit.cs
- ParameterElement.cs
- CreationContext.cs
- MultipartIdentifier.cs
- X509ChainElement.cs
- NodeFunctions.cs
- OwnerDrawPropertyBag.cs
- Rect3D.cs
- XmlSchemaAll.cs
- BamlResourceSerializer.cs
- StatusBarPanel.cs
- sqlser.cs
- ObjectQueryState.cs
- SID.cs
- TemplateXamlParser.cs
- TypeTypeConverter.cs
- HealthMonitoringSectionHelper.cs
- CloudCollection.cs
- Vector3dCollection.cs
- AbsoluteQuery.cs
- Single.cs
- StackOverflowException.cs
- AttachedPropertyBrowsableAttribute.cs
- AutoResizedEvent.cs
- WorkflowRuntimeServiceElementCollection.cs
- AnonymousIdentificationSection.cs
- StructuredTypeEmitter.cs
- Stylus.cs
- ExtentKey.cs