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
- Int16Animation.cs
- SmiContext.cs
- assemblycache.cs
- XPathChildIterator.cs
- AppSettingsExpressionEditor.cs
- XamlTypeMapper.cs
- Hash.cs
- DbConnectionInternal.cs
- ProgressBarBrushConverter.cs
- DataSourceSelectArguments.cs
- Visual3DCollection.cs
- BitmapMetadataEnumerator.cs
- _StreamFramer.cs
- MissingSatelliteAssemblyException.cs
- XmlSchemaAnnotated.cs
- ComponentChangedEvent.cs
- HostUtils.cs
- Endpoint.cs
- SafeBitVector32.cs
- DesignerCommandSet.cs
- SoapHeaders.cs
- FileResponseElement.cs
- DbgUtil.cs
- ProcessMessagesAsyncResult.cs
- SettingsSection.cs
- SafeNativeMethodsMilCoreApi.cs
- ClientEventManager.cs
- MonitoringDescriptionAttribute.cs
- ReverseInheritProperty.cs
- ToolStripItemImageRenderEventArgs.cs
- ServiceModelSecurityTokenRequirement.cs
- FieldDescriptor.cs
- WindowAutomationPeer.cs
- WebPartManagerInternals.cs
- NumberFormatInfo.cs
- TypeForwardedToAttribute.cs
- WebControlParameterProxy.cs
- DbParameterCollection.cs
- ImageListImageEditor.cs
- JoinTreeNode.cs
- SimpleApplicationHost.cs
- BaseTemplateBuildProvider.cs
- MethodToken.cs
- GridViewAutomationPeer.cs
- Helper.cs
- SQLResource.cs
- GroupItemAutomationPeer.cs
- Annotation.cs
- TypefaceMap.cs
- HttpApplication.cs
- ClientBuildManager.cs
- ColumnHeader.cs
- PartialList.cs
- InputLanguageEventArgs.cs
- EdmConstants.cs
- MissingSatelliteAssemblyException.cs
- HealthMonitoringSection.cs
- FrameworkElement.cs
- SamlConditions.cs
- ReadOnlyCollectionBase.cs
- SqlDataSource.cs
- CodeCastExpression.cs
- StateDesigner.CommentLayoutGlyph.cs
- StrongNameUtility.cs
- MenuCommands.cs
- ZoneMembershipCondition.cs
- FormConverter.cs
- ImportOptions.cs
- TimeoutValidationAttribute.cs
- ObjectDataSourceMethodEventArgs.cs
- ViewManager.cs
- infer.cs
- ipaddressinformationcollection.cs
- ConfigurationValue.cs
- AccessibleObject.cs
- PathFigureCollectionValueSerializer.cs
- SoapFault.cs
- ImportOptions.cs
- ActivationService.cs
- DotExpr.cs
- DefaultHttpHandler.cs
- InputScope.cs
- ColorConverter.cs
- FixedSOMTable.cs
- FieldNameLookup.cs
- GradientBrush.cs
- returneventsaver.cs
- MessageSecurityVersionConverter.cs
- TreeNodeEventArgs.cs
- ActivityScheduledQuery.cs
- future.cs
- UnknownBitmapDecoder.cs
- IDQuery.cs
- XmlILAnnotation.cs
- TrustExchangeException.cs
- ColumnResult.cs
- SerializeAbsoluteContext.cs
- DataGridViewBand.cs
- TreeNodeMouseHoverEvent.cs
- HTTPNotFoundHandler.cs