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
- TextDecorations.cs
- XMLUtil.cs
- EnumerableWrapperWeakToStrong.cs
- DBSchemaRow.cs
- ListBox.cs
- ItemType.cs
- BooleanConverter.cs
- DataGridViewTopLeftHeaderCell.cs
- SamlConstants.cs
- DiscoveryReferences.cs
- OleDbPropertySetGuid.cs
- ApplicationManager.cs
- SR.cs
- DocumentOrderComparer.cs
- Subtree.cs
- UIPermission.cs
- NonParentingControl.cs
- ListBoxItem.cs
- InputElement.cs
- ReaderOutput.cs
- FullTextLine.cs
- SvcMapFileLoader.cs
- QueryOperator.cs
- CaretElement.cs
- AvTraceFormat.cs
- XmlNamespaceDeclarationsAttribute.cs
- CustomCategoryAttribute.cs
- FormsAuthenticationTicket.cs
- Select.cs
- Literal.cs
- RouteItem.cs
- shaperfactoryquerycacheentry.cs
- CTreeGenerator.cs
- ValueTypeFixupInfo.cs
- DesignerProperties.cs
- DelegatedStream.cs
- CacheOutputQuery.cs
- Misc.cs
- CqlBlock.cs
- DocumentPageViewAutomationPeer.cs
- RootBrowserWindowProxy.cs
- BaseTemplateCodeDomTreeGenerator.cs
- SqlStatistics.cs
- GroupByQueryOperator.cs
- StateDesignerConnector.cs
- DataContractSet.cs
- DateTimeSerializationSection.cs
- StorageScalarPropertyMapping.cs
- UnsafeNativeMethods.cs
- ProfileModule.cs
- ServiceOperationInfoTypeConverter.cs
- WorkflowApplicationUnhandledExceptionEventArgs.cs
- Misc.cs
- Control.cs
- DisplayToken.cs
- Classification.cs
- HttpRuntimeSection.cs
- SharedPersonalizationStateInfo.cs
- ObfuscateAssemblyAttribute.cs
- BindMarkupExtensionSerializer.cs
- UnauthorizedWebPart.cs
- XmlSchemaAnyAttribute.cs
- NativeBuffer.cs
- EntryWrittenEventArgs.cs
- HtmlFormParameterWriter.cs
- ProfilePropertySettings.cs
- FormViewCommandEventArgs.cs
- MSHTMLHost.cs
- TempFiles.cs
- Stream.cs
- AlignmentYValidation.cs
- DbMetaDataColumnNames.cs
- QilExpression.cs
- ContainerAction.cs
- DataTableClearEvent.cs
- SmtpMail.cs
- ProxyHwnd.cs
- PersistChildrenAttribute.cs
- NamedPermissionSet.cs
- RegexFCD.cs
- LayoutUtils.cs
- SqlBooleanizer.cs
- EllipseGeometry.cs
- CqlParserHelpers.cs
- SystemGatewayIPAddressInformation.cs
- FileDialog_Vista_Interop.cs
- Stack.cs
- CustomValidator.cs
- ExecutionEngineException.cs
- PenContext.cs
- DocumentXmlWriter.cs
- BlobPersonalizationState.cs
- HtmlGenericControl.cs
- BooleanProjectedSlot.cs
- TypeListConverter.cs
- ValidationHelper.cs
- StructuredTypeInfo.cs
- ClientSettingsStore.cs
- PageThemeBuildProvider.cs
- NullableDoubleSumAggregationOperator.cs