Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- StatusBarItem.cs
- DateTimeConverter2.cs
- NativeObjectSecurity.cs
- EnumMember.cs
- HostingEnvironmentException.cs
- RegexRunnerFactory.cs
- LayoutEditorPart.cs
- ContentDesigner.cs
- SoapSchemaExporter.cs
- MD5CryptoServiceProvider.cs
- WeakEventManager.cs
- DesignerGeometryHelper.cs
- TextFormatter.cs
- BaseValidator.cs
- SecurityManager.cs
- StyleModeStack.cs
- OptimisticConcurrencyException.cs
- MediaEntryAttribute.cs
- XPathSelfQuery.cs
- WebPartExportVerb.cs
- DbConnectionClosed.cs
- SchemaImporterExtensionElement.cs
- ADMembershipUser.cs
- SqlDataReader.cs
- EnlistmentState.cs
- Soap.cs
- Journal.cs
- sqlnorm.cs
- ItemMap.cs
- EventDescriptorCollection.cs
- PointLightBase.cs
- EdmToObjectNamespaceMap.cs
- DataViewManagerListItemTypeDescriptor.cs
- InvariantComparer.cs
- BuildResult.cs
- TdsParserHelperClasses.cs
- SoapIgnoreAttribute.cs
- Region.cs
- ExtensionCollection.cs
- DefaultObjectMappingItemCollection.cs
- InplaceBitmapMetadataWriter.cs
- TransformConverter.cs
- RegexWriter.cs
- ProcessHostServerConfig.cs
- WebPartHeaderCloseVerb.cs
- Stacktrace.cs
- Msec.cs
- InvokeBase.cs
- BlockingCollection.cs
- DataKeyArray.cs
- PrivilegeNotHeldException.cs
- UIElement3D.cs
- EntityClassGenerator.cs
- Int32EqualityComparer.cs
- lengthconverter.cs
- AssemblyNameProxy.cs
- XmlSchemaAny.cs
- SiblingIterators.cs
- KeyValuePair.cs
- QilPatternFactory.cs
- StateInitialization.cs
- DbCommandTree.cs
- Error.cs
- XmlQueryContext.cs
- UrlRoutingModule.cs
- FilterEventArgs.cs
- UpdateDelegates.Generated.cs
- ConnectionInterfaceCollection.cs
- ColumnMapCopier.cs
- TextTabProperties.cs
- DocumentViewerBaseAutomationPeer.cs
- ISAPIRuntime.cs
- BuildProvider.cs
- ASCIIEncoding.cs
- ToolBarTray.cs
- XmlDomTextWriter.cs
- LinqDataView.cs
- DigitalSignatureProvider.cs
- ParsedAttributeCollection.cs
- EdmPropertyAttribute.cs
- DataContractSerializerOperationFormatter.cs
- CookieProtection.cs
- DataPointer.cs
- RNGCryptoServiceProvider.cs
- SoapSchemaExporter.cs
- DataGridViewRowPrePaintEventArgs.cs
- StringUtil.cs
- DocumentSchemaValidator.cs
- PropertyGridDesigner.cs
- DashStyle.cs
- loginstatus.cs
- MembershipPasswordException.cs
- SafeSecurityHelper.cs
- DataMemberAttribute.cs
- SafeIUnknown.cs
- VectorCollection.cs
- PropertyChangingEventArgs.cs
- Double.cs
- ReachPageContentCollectionSerializer.cs
- SevenBitStream.cs