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
- VisualStyleInformation.cs
- VisualBrush.cs
- PrimarySelectionGlyph.cs
- Model3DGroup.cs
- Classification.cs
- TagMapInfo.cs
- EnumMember.cs
- CuspData.cs
- UnmanagedHandle.cs
- WebColorConverter.cs
- TextContainerChangeEventArgs.cs
- CommandBindingCollection.cs
- Listbox.cs
- SqlServices.cs
- Scripts.cs
- ApplicationInfo.cs
- ManagementOperationWatcher.cs
- ViewCellSlot.cs
- ToolboxItem.cs
- CompensatableTransactionScopeActivityDesigner.cs
- RenderTargetBitmap.cs
- ScriptResourceInfo.cs
- Events.cs
- ImageSource.cs
- NetStream.cs
- BrowserTree.cs
- EncoderParameters.cs
- UInt64.cs
- FixedElement.cs
- BrowserCapabilitiesFactory35.cs
- DataServiceBehavior.cs
- Themes.cs
- DecimalKeyFrameCollection.cs
- CommandPlan.cs
- ToolboxItem.cs
- Exceptions.cs
- ResourceContainerWrapper.cs
- EventNotify.cs
- RuntimeCompatibilityAttribute.cs
- InfoCardCryptoHelper.cs
- PermissionToken.cs
- TextBoxView.cs
- ScriptModule.cs
- SettingsPropertyIsReadOnlyException.cs
- PageContentCollection.cs
- CannotUnloadAppDomainException.cs
- WebPermission.cs
- AttributeEmitter.cs
- PointAnimation.cs
- DataGridViewImageCell.cs
- HelpKeywordAttribute.cs
- Icon.cs
- MethodBody.cs
- ItemsChangedEventArgs.cs
- FreezableCollection.cs
- ProgressBarAutomationPeer.cs
- LogFlushAsyncResult.cs
- DbModificationCommandTree.cs
- OLEDB_Enum.cs
- Point3DCollectionConverter.cs
- HashSetDebugView.cs
- GenericAuthenticationEventArgs.cs
- WebBrowser.cs
- DEREncoding.cs
- FtpWebRequest.cs
- LabelInfo.cs
- RealProxy.cs
- RowSpanVector.cs
- RegexWriter.cs
- ThousandthOfEmRealDoubles.cs
- CallbackValidatorAttribute.cs
- UserControlBuildProvider.cs
- XmlSchemaSimpleContentExtension.cs
- DataGridViewIntLinkedList.cs
- BufferModeSettings.cs
- FontInfo.cs
- SudsParser.cs
- __ComObject.cs
- LinkClickEvent.cs
- XmlSerializerAssemblyAttribute.cs
- NameSpaceExtractor.cs
- PlatformCulture.cs
- LiteralTextContainerControlBuilder.cs
- SafeArrayTypeMismatchException.cs
- PersonalizationProviderHelper.cs
- SerializationUtility.cs
- ScriptComponentDescriptor.cs
- CompModSwitches.cs
- PagesChangedEventArgs.cs
- DispatcherOperation.cs
- SamlAssertion.cs
- sqlser.cs
- WebBrowserDesigner.cs
- HttpRequestWrapper.cs
- HttpServerUtilityBase.cs
- DLinqColumnProvider.cs
- BinaryObjectInfo.cs
- XmlNotation.cs
- NativeActivity.cs
- UriExt.cs