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
- ZipIOCentralDirectoryDigitalSignature.cs
- XmlCDATASection.cs
- QueryExecutionOption.cs
- ToolStripKeyboardHandlingService.cs
- GeneralTransform.cs
- CharKeyFrameCollection.cs
- EncodingNLS.cs
- DbProviderFactory.cs
- XmlNamespaceDeclarationsAttribute.cs
- HMACSHA1.cs
- ControlBuilderAttribute.cs
- SecurityContext.cs
- XmlElementAttributes.cs
- FreezableDefaultValueFactory.cs
- ProxySimple.cs
- EnumBuilder.cs
- CapabilitiesState.cs
- TraceSource.cs
- ScriptModule.cs
- HttpWriter.cs
- CaseExpr.cs
- WindowsStartMenu.cs
- Point3DIndependentAnimationStorage.cs
- IisTraceListener.cs
- CompiledQuery.cs
- ValueConversionAttribute.cs
- ServiceDescriptionImporter.cs
- indexingfiltermarshaler.cs
- PermissionToken.cs
- IdnMapping.cs
- UmAlQuraCalendar.cs
- invalidudtexception.cs
- ParagraphResult.cs
- ConfigurationElementProperty.cs
- EventHandlersStore.cs
- SpanIndex.cs
- Int16.cs
- InstanceDataCollectionCollection.cs
- AutomationProperties.cs
- Activator.cs
- DTCTransactionManager.cs
- RijndaelManaged.cs
- CompilerLocalReference.cs
- webeventbuffer.cs
- ToRequest.cs
- ReflectionServiceProvider.cs
- OdbcCommandBuilder.cs
- OracleConnectionString.cs
- AnnotationHelper.cs
- ScriptingWebServicesSectionGroup.cs
- PersonalizationEntry.cs
- SqlComparer.cs
- HiddenField.cs
- ImageInfo.cs
- OperatingSystem.cs
- XPathPatternParser.cs
- messageonlyhwndwrapper.cs
- PartitionResolver.cs
- Simplifier.cs
- ElementHostPropertyMap.cs
- KeyNotFoundException.cs
- PowerModeChangedEventArgs.cs
- Win32MouseDevice.cs
- InlineCollection.cs
- SerializationFieldInfo.cs
- SqlDataSourceConnectionPanel.cs
- WebPartVerbsEventArgs.cs
- AssemblySettingAttributes.cs
- SimpleWebHandlerParser.cs
- DocumentScope.cs
- RijndaelManaged.cs
- GeneralTransform3DGroup.cs
- NamespaceList.cs
- RuleAction.cs
- NavigationPropertyEmitter.cs
- Events.cs
- ToolbarAUtomationPeer.cs
- PropertyGridCommands.cs
- dtdvalidator.cs
- InheritanceContextChangedEventManager.cs
- TypeDescriptor.cs
- Debug.cs
- InProcStateClientManager.cs
- RepeatBehavior.cs
- FormClosedEvent.cs
- UriTemplateDispatchFormatter.cs
- Transaction.cs
- formatter.cs
- HotSpotCollection.cs
- SqlBooleanMismatchVisitor.cs
- ButtonChrome.cs
- HostExecutionContextManager.cs
- ZipIOLocalFileDataDescriptor.cs
- ResXResourceSet.cs
- NumberFunctions.cs
- HwndAppCommandInputProvider.cs
- TextAction.cs
- ParentUndoUnit.cs
- RequestReplyCorrelator.cs
- X509Extension.cs