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
- ControlTemplate.cs
- DirectoryRedirect.cs
- assertwrapper.cs
- ClientTarget.cs
- CompensatableTransactionScopeActivity.cs
- LoadRetryConstantStrategy.cs
- RegexFCD.cs
- TextServicesDisplayAttribute.cs
- InfoCardClaim.cs
- InfoCardMetadataExchangeClient.cs
- HasCopySemanticsAttribute.cs
- AdornerPresentationContext.cs
- AutoCompleteStringCollection.cs
- MailMessageEventArgs.cs
- DeviceOverridableAttribute.cs
- ScriptControlManager.cs
- TakeOrSkipWhileQueryOperator.cs
- PageContentCollection.cs
- DbDeleteCommandTree.cs
- ContractMethodParameterInfo.cs
- DataGridViewRowCollection.cs
- mda.cs
- TabControlEvent.cs
- LocatorGroup.cs
- ConcurrentBag.cs
- RectAnimation.cs
- MsmqProcessProtocolHandler.cs
- DropDownList.cs
- SamlSecurityToken.cs
- ToolStripLocationCancelEventArgs.cs
- cookiecontainer.cs
- OptimisticConcurrencyException.cs
- TemplateFactory.cs
- Bold.cs
- PersonalizationProviderCollection.cs
- GridView.cs
- _NegotiateClient.cs
- FixedHyperLink.cs
- X509Utils.cs
- StringValidatorAttribute.cs
- FormViewDeleteEventArgs.cs
- OdbcEnvironment.cs
- FixUpCollection.cs
- WhitespaceRule.cs
- DiscreteKeyFrames.cs
- XmlSchemaExporter.cs
- SerializationSectionGroup.cs
- ApplicationContext.cs
- WebPartHelpVerb.cs
- QueryModel.cs
- SimpleBitVector32.cs
- OleDbEnumerator.cs
- OracleEncoding.cs
- HttpConfigurationSystem.cs
- ListSourceHelper.cs
- XamlTemplateSerializer.cs
- HealthMonitoringSectionHelper.cs
- VectorCollectionConverter.cs
- Activator.cs
- EnumBuilder.cs
- CompilationUnit.cs
- SplitContainer.cs
- Stack.cs
- ExplicitDiscriminatorMap.cs
- HttpWebRequestElement.cs
- BevelBitmapEffect.cs
- SingleObjectCollection.cs
- KoreanLunisolarCalendar.cs
- InitializerFacet.cs
- Pointer.cs
- EntitySqlQueryCacheEntry.cs
- _OSSOCK.cs
- FontFamily.cs
- BufferManager.cs
- ObjectSet.cs
- Msmq4SubqueuePoisonHandler.cs
- WorkflowTransactionService.cs
- GridViewEditEventArgs.cs
- SpecularMaterial.cs
- ReflectionPermission.cs
- RC2.cs
- BrowserCapabilitiesCompiler.cs
- Grammar.cs
- XmlCharType.cs
- ReflectionServiceProvider.cs
- CodeActivityMetadata.cs
- Identity.cs
- DataRowView.cs
- RubberbandSelector.cs
- TextServicesCompartmentEventSink.cs
- ConfigurationProperty.cs
- LabelLiteral.cs
- UpDownEvent.cs
- UIElementCollection.cs
- StylusOverProperty.cs
- MetadataUtilsSmi.cs
- DataPagerFieldCommandEventArgs.cs
- DateTimeSerializationSection.cs
- DbConnectionPool.cs
- EventLogPermissionEntry.cs