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
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CryptoKeySecurity.cs
- OleDbEnumerator.cs
- TabletDevice.cs
- LocalizeDesigner.cs
- XmlDataLoader.cs
- Process.cs
- StoreContentChangedEventArgs.cs
- PropertyTabAttribute.cs
- ReadOnlyNameValueCollection.cs
- RightsManagementProvider.cs
- TransformerInfoCollection.cs
- BufferModeSettings.cs
- ToolCreatedEventArgs.cs
- ValidationPropertyAttribute.cs
- ChannelEndpointElementCollection.cs
- WorkflowApplicationUnhandledExceptionEventArgs.cs
- CodeTypeDeclarationCollection.cs
- UseManagedPresentationBindingElementImporter.cs
- GridViewUpdatedEventArgs.cs
- ComPlusServiceLoader.cs
- DataBindingCollection.cs
- UrlMapping.cs
- DayRenderEvent.cs
- ResourceReferenceExpressionConverter.cs
- LZCodec.cs
- Emitter.cs
- EntityAdapter.cs
- InstanceDataCollection.cs
- LambdaCompiler.Generated.cs
- WriteableOnDemandPackagePart.cs
- ActivityIdHeader.cs
- EventHandlersStore.cs
- XmlIncludeAttribute.cs
- GeneralTransform3DTo2D.cs
- DoubleCollectionValueSerializer.cs
- CrossSiteScriptingValidation.cs
- WorkflowQueue.cs
- SrgsSubset.cs
- Comparer.cs
- UserMapPath.cs
- DataServiceRequestException.cs
- Point3DCollection.cs
- RefreshPropertiesAttribute.cs
- ManagementException.cs
- FunctionMappingTranslator.cs
- AppLevelCompilationSectionCache.cs
- DbFunctionCommandTree.cs
- HandleExceptionArgs.cs
- PeerReferralPolicy.cs
- LinearKeyFrames.cs
- Duration.cs
- SmiRecordBuffer.cs
- XmlDataSourceView.cs
- BindingExpression.cs
- HostSecurityManager.cs
- ConfigurationPropertyCollection.cs
- QueryStringParameter.cs
- DataSourceCacheDurationConverter.cs
- InvalidEnumArgumentException.cs
- JavaScriptSerializer.cs
- ExpressionVisitor.cs
- FieldBuilder.cs
- DetailsViewModeEventArgs.cs
- ErrorFormatterPage.cs
- AssemblyAssociatedContentFileAttribute.cs
- ImageSourceConverter.cs
- InfocardExtendedInformationCollection.cs
- ClientSettings.cs
- AsymmetricAlgorithm.cs
- ListSortDescriptionCollection.cs
- WebBrowserHelper.cs
- CSharpCodeProvider.cs
- HttpModuleCollection.cs
- XmlElementCollection.cs
- XmlILStorageConverter.cs
- CapabilitiesState.cs
- MenuCommandService.cs
- DPTypeDescriptorContext.cs
- Translator.cs
- AnyAllSearchOperator.cs
- BindingExpressionBase.cs
- VisualBasicSettingsConverter.cs
- CompilerError.cs
- Command.cs
- AccessDataSource.cs
- XmlArrayItemAttributes.cs
- TableAdapterManagerHelper.cs
- ParameterToken.cs
- GeometryModel3D.cs
- UnsignedPublishLicense.cs
- versioninfo.cs
- SmiEventStream.cs
- ToolStripRendererSwitcher.cs
- DefaultValueConverter.cs
- CodeTypeMemberCollection.cs
- UpdateProgress.cs
- Line.cs
- SQLUtility.cs
- UncommonField.cs
- ObjectStateManager.cs