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
- BulletChrome.cs
- ToolStripContentPanelDesigner.cs
- XPathChildIterator.cs
- UndoEngine.cs
- AssemblyAttributesGoHere.cs
- CategoryNameCollection.cs
- Parameter.cs
- AssemblyCollection.cs
- DataGridViewDesigner.cs
- StructuredTypeEmitter.cs
- TableLayoutPanelCellPosition.cs
- NativeMethods.cs
- AttachedProperty.cs
- _emptywebproxy.cs
- WaitHandleCannotBeOpenedException.cs
- BindableAttribute.cs
- NameObjectCollectionBase.cs
- TextLine.cs
- Content.cs
- PackageController.cs
- SystemThemeKey.cs
- CalendarDayButton.cs
- AspNetCacheProfileAttribute.cs
- mactripleDES.cs
- TextParentUndoUnit.cs
- DirtyTextRange.cs
- ExeConfigurationFileMap.cs
- EntityDataSourceWrapperCollection.cs
- BuildResult.cs
- AggregatePushdown.cs
- UInt16Converter.cs
- TextBreakpoint.cs
- CodeMethodInvokeExpression.cs
- HandlerBase.cs
- SystemWebSectionGroup.cs
- StreamWriter.cs
- ExpressionNormalizer.cs
- StrongTypingException.cs
- Comparer.cs
- Calendar.cs
- WebPartsPersonalizationAuthorization.cs
- BufferModesCollection.cs
- TypeForwardedToAttribute.cs
- NavigatorInput.cs
- AutomationPropertyInfo.cs
- PointKeyFrameCollection.cs
- Odbc32.cs
- Events.cs
- DriveNotFoundException.cs
- RMPublishingDialog.cs
- ToolTipService.cs
- RegexWriter.cs
- HostingEnvironmentSection.cs
- DataSpaceManager.cs
- LinkClickEvent.cs
- DiagnosticSection.cs
- DesignerWithHeader.cs
- DeferredBinaryDeserializerExtension.cs
- DesignerValidationSummaryAdapter.cs
- GradientSpreadMethodValidation.cs
- SoapSchemaExporter.cs
- SqlConnectionString.cs
- OLEDB_Util.cs
- AsmxEndpointPickerExtension.cs
- WindowsNonControl.cs
- DiscardableAttribute.cs
- SizeAnimationBase.cs
- CacheModeConverter.cs
- TagMapCollection.cs
- PrintDialog.cs
- TransactionException.cs
- MimeReflector.cs
- DetailsViewModeEventArgs.cs
- SafeNativeMethods.cs
- KeyTime.cs
- ImageSource.cs
- SchemaImporterExtensionElementCollection.cs
- OpenTypeLayoutCache.cs
- PolyQuadraticBezierSegmentFigureLogic.cs
- RecordBuilder.cs
- SystemNetworkInterface.cs
- SelectionUIHandler.cs
- CorrelationTokenTypeConvertor.cs
- GlyphRunDrawing.cs
- PropertyStore.cs
- MobileControlsSectionHandler.cs
- SpellerStatusTable.cs
- __ConsoleStream.cs
- UnknownWrapper.cs
- XmlSortKeyAccumulator.cs
- TreeNodeStyle.cs
- HandoffBehavior.cs
- UIElementParaClient.cs
- HistoryEventArgs.cs
- MultiSelectRootGridEntry.cs
- LOSFormatter.cs
- Token.cs
- CodeAssignStatement.cs
- Int64AnimationUsingKeyFrames.cs
- SQLCharsStorage.cs