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
- TableParaClient.cs
- ExtenderProviderService.cs
- NotImplementedException.cs
- RowUpdatedEventArgs.cs
- StreamWriter.cs
- DataGridClipboardHelper.cs
- FeatureSupport.cs
- FileDataSourceCache.cs
- HwndSourceParameters.cs
- CurrencyWrapper.cs
- FontDriver.cs
- MgmtConfigurationRecord.cs
- DeclaredTypeElement.cs
- xamlnodes.cs
- PreviewKeyDownEventArgs.cs
- TextEndOfParagraph.cs
- ImageMetadata.cs
- MimePart.cs
- WebAdminConfigurationHelper.cs
- DynamicControlParameter.cs
- WaveHeader.cs
- DataConnectionHelper.cs
- Char.cs
- Expression.DebuggerProxy.cs
- EventProviderWriter.cs
- GridViewRowPresenterBase.cs
- Geometry3D.cs
- RootNamespaceAttribute.cs
- DataGridCaption.cs
- WarningException.cs
- ParameterReplacerVisitor.cs
- XmlSerializerSection.cs
- ToolStripRenderEventArgs.cs
- ScalarConstant.cs
- ProviderConnectionPointCollection.cs
- WebPartEditorOkVerb.cs
- Polyline.cs
- AspNetHostingPermission.cs
- PerformanceCounterManager.cs
- ClientScriptManager.cs
- PageAction.cs
- MenuItemCollection.cs
- RequiredFieldValidator.cs
- ControlUtil.cs
- PersonalizationEntry.cs
- SortFieldComparer.cs
- ComponentCache.cs
- DataSetMappper.cs
- GridViewUpdatedEventArgs.cs
- BinHexDecoder.cs
- TextViewBase.cs
- ColorPalette.cs
- FreezableOperations.cs
- RealizedColumnsBlock.cs
- RichTextBox.cs
- NullableBoolConverter.cs
- UnknownBitmapDecoder.cs
- NameTable.cs
- BaseValidatorDesigner.cs
- HandleRef.cs
- ExpressionEditorAttribute.cs
- XMLSchema.cs
- DataGridItemCollection.cs
- ZipIOLocalFileDataDescriptor.cs
- ResourceReferenceExpressionConverter.cs
- FindProgressChangedEventArgs.cs
- PolicyException.cs
- ComponentDispatcher.cs
- StylusLogic.cs
- XmlSecureResolver.cs
- TextEditorDragDrop.cs
- Int64Converter.cs
- HttpCookieCollection.cs
- DataBoundControl.cs
- FileEnumerator.cs
- WindowsTitleBar.cs
- ValueProviderWrapper.cs
- BitmapFrameEncode.cs
- ToolStripDropDown.cs
- DropTarget.cs
- EnumerableWrapperWeakToStrong.cs
- StringCollection.cs
- CommandManager.cs
- BitArray.cs
- DoubleLink.cs
- CultureInfo.cs
- AudioLevelUpdatedEventArgs.cs
- HandleCollector.cs
- UTF7Encoding.cs
- CallInfo.cs
- DataSet.cs
- SortedDictionary.cs
- SourceChangedEventArgs.cs
- ServiceCredentialsSecurityTokenManager.cs
- ReflectionHelper.cs
- Typeface.cs
- SectionUpdates.cs
- CriticalFinalizerObject.cs
- _LoggingObject.cs
- BuildManagerHost.cs