Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- XmlWriterSettings.cs
- XsdCachingReader.cs
- ClusterRegistryConfigurationProvider.cs
- DesignerInterfaces.cs
- Cursors.cs
- PrincipalPermission.cs
- RuntimeVariableList.cs
- TextDecoration.cs
- MouseOverProperty.cs
- serverconfig.cs
- RuleRef.cs
- RenderingBiasValidation.cs
- MatrixKeyFrameCollection.cs
- WhitespaceSignificantCollectionAttribute.cs
- GridViewEditEventArgs.cs
- SystemDropShadowChrome.cs
- RawUIStateInputReport.cs
- FileChangeNotifier.cs
- TrackPointCollection.cs
- SourceElementsCollection.cs
- TraceSection.cs
- CounterSampleCalculator.cs
- LocalizationParserHooks.cs
- StorageModelBuildProvider.cs
- Vector3DCollectionValueSerializer.cs
- OleDbStruct.cs
- DbConnectionHelper.cs
- InsufficientMemoryException.cs
- Visual3DCollection.cs
- xmlfixedPageInfo.cs
- Hex.cs
- FixedDocumentPaginator.cs
- COM2PropertyDescriptor.cs
- TextTreeExtractElementUndoUnit.cs
- TransformedBitmap.cs
- TagMapInfo.cs
- ManagementNamedValueCollection.cs
- GatewayDefinition.cs
- KeyValueInternalCollection.cs
- LicenseManager.cs
- SymbolEqualComparer.cs
- WebControlAdapter.cs
- StyleCollectionEditor.cs
- TcpStreams.cs
- ListDictionary.cs
- WebAdminConfigurationHelper.cs
- UpdateProgress.cs
- BitmapCacheBrush.cs
- Token.cs
- WebServiceTypeData.cs
- COM2ComponentEditor.cs
- PassportAuthenticationModule.cs
- ConsoleTraceListener.cs
- EmptyEnumerable.cs
- ContentElement.cs
- BuildProviderCollection.cs
- SqlCrossApplyToCrossJoin.cs
- ParameterSubsegment.cs
- RegularExpressionValidator.cs
- Publisher.cs
- AppSettings.cs
- InstanceLockException.cs
- SqlDuplicator.cs
- Table.cs
- SelectorAutomationPeer.cs
- OdbcEnvironmentHandle.cs
- EdmToObjectNamespaceMap.cs
- EncryptedPackage.cs
- TextEndOfSegment.cs
- HtmlInputSubmit.cs
- SafeFileMapViewHandle.cs
- ConnectionManagementElementCollection.cs
- GridEntry.cs
- ServiceOperationWrapper.cs
- TextControl.cs
- AudioBase.cs
- URLString.cs
- UIElementParaClient.cs
- RegionInfo.cs
- TreeViewDataItemAutomationPeer.cs
- DataTableNewRowEvent.cs
- ArraySortHelper.cs
- Column.cs
- SqlCacheDependencyDatabaseCollection.cs
- RIPEMD160Managed.cs
- ViewKeyConstraint.cs
- KeyInterop.cs
- FileAuthorizationModule.cs
- _SslState.cs
- ControlBindingsCollection.cs
- SynchronizedInputProviderWrapper.cs
- ChildrenQuery.cs
- CustomValidator.cs
- UnionCodeGroup.cs
- MailSettingsSection.cs
- Utils.cs
- File.cs
- SystemIPGlobalProperties.cs
- ISAPIWorkerRequest.cs
- IPipelineRuntime.cs