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
- ValidatingReaderNodeData.cs
- StateManager.cs
- StyleCollection.cs
- ProxyWebPartConnectionCollection.cs
- OptimizerPatterns.cs
- FileSystemEventArgs.cs
- DmlSqlGenerator.cs
- WebRequestModulesSection.cs
- EventWaitHandleSecurity.cs
- RetrieveVirtualItemEventArgs.cs
- Icon.cs
- RotateTransform3D.cs
- Permission.cs
- ConfigurationSettings.cs
- ComboBoxRenderer.cs
- PngBitmapDecoder.cs
- ManagedCodeMarkers.cs
- FixedPageStructure.cs
- TimelineGroup.cs
- ManualWorkflowSchedulerService.cs
- SqlDataSourceCommandEventArgs.cs
- CurrentChangedEventManager.cs
- XmlMemberMapping.cs
- Int32.cs
- ToolStripStatusLabel.cs
- SessionSwitchEventArgs.cs
- TransactionProtocol.cs
- DbDataRecord.cs
- BasePattern.cs
- DrawingVisual.cs
- PngBitmapEncoder.cs
- TranslateTransform.cs
- IconHelper.cs
- ErrorWebPart.cs
- PropertyGridDesigner.cs
- Point3D.cs
- BypassElement.cs
- RegexGroupCollection.cs
- AudioBase.cs
- MissingManifestResourceException.cs
- XmlIncludeAttribute.cs
- ContextConfiguration.cs
- AlphaSortedEnumConverter.cs
- RIPEMD160.cs
- TdsParameterSetter.cs
- Missing.cs
- HtmlAnchor.cs
- SQLRoleProvider.cs
- FieldDescriptor.cs
- MinimizableAttributeTypeConverter.cs
- DefinitionBase.cs
- RequestCachePolicy.cs
- FtpWebRequest.cs
- ObjectQuery_EntitySqlExtensions.cs
- ConnectionOrientedTransportBindingElement.cs
- SoapAttributeOverrides.cs
- ListDictionary.cs
- SecurityKeyIdentifier.cs
- ClientTargetSection.cs
- EndEvent.cs
- DecoderReplacementFallback.cs
- DocumentViewer.cs
- SqlFacetAttribute.cs
- Mapping.cs
- DbConnectionPoolGroupProviderInfo.cs
- ComponentDesigner.cs
- ProcessModuleCollection.cs
- DeadCharTextComposition.cs
- ContextMenu.cs
- RootBrowserWindow.cs
- _IPv4Address.cs
- CertificateManager.cs
- DataKey.cs
- Buffer.cs
- MulticastOption.cs
- SpellerInterop.cs
- IdentityValidationException.cs
- ACL.cs
- LogLogRecordHeader.cs
- XmlSchemaImport.cs
- ImageUrlEditor.cs
- HtmlTextViewAdapter.cs
- StylusPointCollection.cs
- ActivityExecutorDelegateInfo.cs
- AdapterDictionary.cs
- RSAOAEPKeyExchangeDeformatter.cs
- base64Transforms.cs
- TextAnchor.cs
- WsdlBuildProvider.cs
- followingquery.cs
- FormattedTextSymbols.cs
- SqlRemoveConstantOrderBy.cs
- DataSetUtil.cs
- ChannelEndpointElement.cs
- GeneralTransformCollection.cs
- XmlSchemaAll.cs
- MeshGeometry3D.cs
- FusionWrap.cs
- PrefixQName.cs
- DeflateStreamAsyncResult.cs