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
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ParagraphResult.cs
- UInt32.cs
- SignedXml.cs
- DesignerView.cs
- VariableDesigner.xaml.cs
- InvalidDataContractException.cs
- PresentationTraceSources.cs
- TextHintingModeValidation.cs
- RawAppCommandInputReport.cs
- VerificationAttribute.cs
- SafeHandle.cs
- HostingEnvironment.cs
- TokenBasedSetEnumerator.cs
- MouseEvent.cs
- DataGridViewDataConnection.cs
- RefreshEventArgs.cs
- ServiceDebugBehavior.cs
- QilFactory.cs
- MetabaseServerConfig.cs
- VirtualDirectoryMappingCollection.cs
- NativeMethods.cs
- EventBuilder.cs
- DrawingCollection.cs
- ValidationSummary.cs
- ByteStorage.cs
- Pool.cs
- DbParameterCollection.cs
- uribuilder.cs
- SectionInput.cs
- TypeGeneratedEventArgs.cs
- DataGridItem.cs
- TextEditorTables.cs
- GenericTextProperties.cs
- Matrix3DStack.cs
- IntersectQueryOperator.cs
- WrapPanel.cs
- XmlCompatibilityReader.cs
- UnsafeNativeMethods.cs
- NumericPagerField.cs
- ScrollChangedEventArgs.cs
- ContentPosition.cs
- DataProviderNameConverter.cs
- SessionViewState.cs
- TemplateBindingExtension.cs
- CodeIdentifiers.cs
- ColumnHeaderConverter.cs
- RichTextBoxAutomationPeer.cs
- HttpSessionStateWrapper.cs
- FontUnit.cs
- SiteMapNodeItemEventArgs.cs
- IconHelper.cs
- MissingSatelliteAssemblyException.cs
- PointAnimationUsingPath.cs
- XComponentModel.cs
- ToolStripPanelRow.cs
- ArrangedElementCollection.cs
- RegexCompiler.cs
- ComplexTypeEmitter.cs
- OlePropertyStructs.cs
- WFItemsToSpacerVisibility.cs
- SqlFileStream.cs
- MsmqHostedTransportConfiguration.cs
- UIElementCollection.cs
- NotifyParentPropertyAttribute.cs
- Stopwatch.cs
- DescendantBaseQuery.cs
- TypeRefElement.cs
- BaseAutoFormat.cs
- ClientScriptManagerWrapper.cs
- FragmentQuery.cs
- XmlWellformedWriter.cs
- StrongNameKeyPair.cs
- DataFormats.cs
- XslAstAnalyzer.cs
- MenuStrip.cs
- ApplicationHost.cs
- CodeValidator.cs
- BamlRecordWriter.cs
- CatalogPart.cs
- pingexception.cs
- MetadataArtifactLoaderResource.cs
- CryptoStream.cs
- SvcMapFileSerializer.cs
- MetadataItemEmitter.cs
- DefaultEventAttribute.cs
- SynchronousReceiveBehavior.cs
- StylusSystemGestureEventArgs.cs
- MailDefinition.cs
- BackgroundFormatInfo.cs
- AdapterUtil.cs
- WebConfigurationManager.cs
- ManualResetEvent.cs
- SqlProfileProvider.cs
- HwndKeyboardInputProvider.cs
- ActivityBindForm.cs
- InputBuffer.cs
- HttpListenerElement.cs
- TreeView.cs
- DefaultProxySection.cs
- DataSourceControlBuilder.cs