Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
- WindowsFormsSectionHandler.cs
- CryptoProvider.cs
- PageThemeParser.cs
- StrongTypingException.cs
- CapabilitiesSection.cs
- EncoderReplacementFallback.cs
- HtmlInputHidden.cs
- PersonalizationStateInfo.cs
- ReadOnlyPropertyMetadata.cs
- IncomingWebResponseContext.cs
- AspCompat.cs
- XmlNamespaceManager.cs
- IgnorePropertiesAttribute.cs
- ContentHostHelper.cs
- QilList.cs
- OpenTypeCommon.cs
- ExportOptions.cs
- MenuItem.cs
- DataBoundControlActionList.cs
- Expr.cs
- ButtonBase.cs
- UndirectedGraph.cs
- DebugController.cs
- WebPartConnectVerb.cs
- OleStrCAMarshaler.cs
- AsyncDataRequest.cs
- CodeAttributeArgument.cs
- QueryCreatedEventArgs.cs
- ConfigurationErrorsException.cs
- Rect3D.cs
- Stream.cs
- DynamicRendererThreadManager.cs
- sqlstateclientmanager.cs
- SQLGuid.cs
- CodeRemoveEventStatement.cs
- DerivedKeyCachingSecurityTokenSerializer.cs
- TypeValidationEventArgs.cs
- LoginView.cs
- NativeMethods.cs
- XmlException.cs
- ConfigurationPermission.cs
- Freezable.cs
- OverlappedContext.cs
- ResolveCriteriaCD1.cs
- PeerObject.cs
- WebControlsSection.cs
- SourceElementsCollection.cs
- CodeNamespace.cs
- Misc.cs
- HttpCookieCollection.cs
- CacheRequest.cs
- FrugalList.cs
- UnmanagedMarshal.cs
- ReceiveSecurityHeaderElementManager.cs
- ProcessProtocolHandler.cs
- CachingHintValidation.cs
- AlternateViewCollection.cs
- FunctionUpdateCommand.cs
- DeviceContext2.cs
- NextPreviousPagerField.cs
- AdornedElementPlaceholder.cs
- ToolStripDropDownClosingEventArgs.cs
- DataGridViewCellStyleBuilderDialog.cs
- ProjectionPruner.cs
- HttpStreams.cs
- LinkArea.cs
- TagNameToTypeMapper.cs
- Signature.cs
- Msec.cs
- BaseWebProxyFinder.cs
- DataGridBoolColumn.cs
- BitmapPalette.cs
- XmlSerializationReader.cs
- ThicknessAnimation.cs
- TextServicesProperty.cs
- ProcessThread.cs
- HtmlInputButton.cs
- NamedServiceModelExtensionCollectionElement.cs
- EmbeddedMailObjectsCollection.cs
- EdmItemCollection.cs
- SelectionGlyph.cs
- AstNode.cs
- InvokePatternIdentifiers.cs
- ObjectDataSourceView.cs
- PhysicalOps.cs
- WebBrowserBase.cs
- _ShellExpression.cs
- SystemIPInterfaceProperties.cs
- NotImplementedException.cs
- UnsafeNativeMethods.cs
- XamlClipboardData.cs
- SetterBase.cs
- ContextMenuStripGroupCollection.cs
- EntityDataSourceContainerNameConverter.cs
- MgmtResManager.cs
- StylusDownEventArgs.cs
- GlyphTypeface.cs
- XmlDeclaration.cs
- ApplicationManager.cs
- ObjectCacheHost.cs