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
- XmlSchemaAnyAttribute.cs
- SimpleModelProvider.cs
- TransferMode.cs
- NullableLongMinMaxAggregationOperator.cs
- MemoryMappedFileSecurity.cs
- DriveInfo.cs
- Monitor.cs
- HtmlImage.cs
- ToolStripDropDownButton.cs
- CodeTypeDelegate.cs
- SqlTypeConverter.cs
- DataGridViewLinkCell.cs
- CodeExporter.cs
- PolyQuadraticBezierSegment.cs
- GridViewItemAutomationPeer.cs
- WindowAutomationPeer.cs
- BooleanStorage.cs
- CacheDependency.cs
- ProxyWebPart.cs
- FramingChannels.cs
- ChtmlSelectionListAdapter.cs
- PageThemeBuildProvider.cs
- SqlRowUpdatedEvent.cs
- RemotingClientProxy.cs
- RoutedEventValueSerializer.cs
- ValueSerializerAttribute.cs
- ExpressionBuilder.cs
- AutomationPattern.cs
- Table.cs
- EncoderParameter.cs
- ConfigurationSchemaErrors.cs
- Size3D.cs
- DiagnosticsConfigurationHandler.cs
- PropertyDescriptorComparer.cs
- Polyline.cs
- WebBrowserNavigatingEventHandler.cs
- DrawingContextWalker.cs
- IndexingContentUnit.cs
- MulticastDelegate.cs
- TextTreeRootTextBlock.cs
- returneventsaver.cs
- HttpListenerRequestTraceRecord.cs
- IsolatedStorageFilePermission.cs
- ActiveXHost.cs
- SqlTransaction.cs
- ResourceDescriptionAttribute.cs
- PreloadedPackages.cs
- StatusBarItem.cs
- StylusPointProperty.cs
- ExpressionContext.cs
- ConfigurationManagerInternal.cs
- AttributeData.cs
- CapabilitiesAssignment.cs
- InternalDispatchObject.cs
- DataServiceQueryOfT.cs
- AccessDataSourceView.cs
- GeometryModel3D.cs
- _SslStream.cs
- TcpServerChannel.cs
- PrePostDescendentsWalker.cs
- NullableConverter.cs
- ExclusiveNamedPipeTransportManager.cs
- NavigationHelper.cs
- HtmlLinkAdapter.cs
- BuildProvider.cs
- DoubleStorage.cs
- RecordConverter.cs
- XmlDataDocument.cs
- NativeMethods.cs
- UrlMappingsSection.cs
- HealthMonitoringSectionHelper.cs
- SignatureResourcePool.cs
- VisualStyleTypesAndProperties.cs
- RepeaterDataBoundAdapter.cs
- DispatcherObject.cs
- DoubleStorage.cs
- ImportOptions.cs
- BindableAttribute.cs
- XmlValueConverter.cs
- SplitterEvent.cs
- DocumentViewer.cs
- UrlAuthFailedErrorFormatter.cs
- TypeConvertions.cs
- ByteArrayHelperWithString.cs
- ListItemCollection.cs
- XmlCustomFormatter.cs
- DragDropHelper.cs
- GeometryHitTestParameters.cs
- AlignmentXValidation.cs
- ZoomComboBox.cs
- BrowserTree.cs
- NTAccount.cs
- DiscoveryClientDocuments.cs
- ActivityInstance.cs
- RemotingConfiguration.cs
- ManipulationStartedEventArgs.cs
- BitmapEffectCollection.cs
- CallbackHandler.cs
- ActivityMarkupSerializationProvider.cs
- Pair.cs