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 / Runtime / InteropServices / ArrayWithOffset.cs / 1 / ArrayWithOffset.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== namespace System.Runtime.InteropServices { using System; using System.Runtime.CompilerServices; [Serializable] [System.Runtime.InteropServices.ComVisible(true)] public struct ArrayWithOffset { //private ArrayWithOffset() //{ // throw new Exception(); //} public ArrayWithOffset(Object array, int offset) { m_array = array; m_offset = offset; m_count = 0; m_count = CalculateCount(); } public Object GetArray() { return m_array; } public int GetOffset() { return m_offset; } public override int GetHashCode() { return m_count + m_offset; } public override bool Equals(Object obj) { if (obj is ArrayWithOffset) return Equals((ArrayWithOffset)obj); else return false; } public bool Equals(ArrayWithOffset obj) { return obj.m_array == m_array && obj.m_offset == m_offset && obj.m_count == m_count; } public static bool operator ==(ArrayWithOffset a, ArrayWithOffset b) { return a.Equals(b); } public static bool operator !=(ArrayWithOffset a, ArrayWithOffset b) { return !(a == b); } [MethodImplAttribute(MethodImplOptions.InternalCall)] private extern int CalculateCount(); private Object m_array; private int m_offset; private int m_count; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== namespace System.Runtime.InteropServices { using System; using System.Runtime.CompilerServices; [Serializable] [System.Runtime.InteropServices.ComVisible(true)] public struct ArrayWithOffset { //private ArrayWithOffset() //{ // throw new Exception(); //} public ArrayWithOffset(Object array, int offset) { m_array = array; m_offset = offset; m_count = 0; m_count = CalculateCount(); } public Object GetArray() { return m_array; } public int GetOffset() { return m_offset; } public override int GetHashCode() { return m_count + m_offset; } public override bool Equals(Object obj) { if (obj is ArrayWithOffset) return Equals((ArrayWithOffset)obj); else return false; } public bool Equals(ArrayWithOffset obj) { return obj.m_array == m_array && obj.m_offset == m_offset && obj.m_count == m_count; } public static bool operator ==(ArrayWithOffset a, ArrayWithOffset b) { return a.Equals(b); } public static bool operator !=(ArrayWithOffset a, ArrayWithOffset b) { return !(a == b); } [MethodImplAttribute(MethodImplOptions.InternalCall)] private extern int CalculateCount(); private Object m_array; private int m_offset; private int m_count; } } // 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
- ListControlActionList.cs
- ControlParameter.cs
- TemplateInstanceAttribute.cs
- UInt16.cs
- TableCellCollection.cs
- ContainerControlDesigner.cs
- PrintPreviewControl.cs
- loginstatus.cs
- ConditionalExpression.cs
- ConfigXmlSignificantWhitespace.cs
- TrustSection.cs
- Timer.cs
- ThreadStartException.cs
- ExceptionHandler.cs
- FrameworkObject.cs
- LineMetrics.cs
- DoubleAnimationClockResource.cs
- SynchronizedInputHelper.cs
- complextypematerializer.cs
- GenericPrincipal.cs
- SafeNativeMethods.cs
- PostBackTrigger.cs
- XmlNamespaceMapping.cs
- DiscoveryVersionConverter.cs
- NativeRightsManagementAPIsStructures.cs
- LinearGradientBrush.cs
- StatusBarDesigner.cs
- PointCollection.cs
- EventListenerClientSide.cs
- PropertyChangedEventManager.cs
- TextEditorLists.cs
- RemoteWebConfigurationHostServer.cs
- DynamicValidatorEventArgs.cs
- AstTree.cs
- CharacterBuffer.cs
- mediapermission.cs
- ObjectList.cs
- ExecutionScope.cs
- WebBrowserContainer.cs
- ContextMarshalException.cs
- HtmlSelect.cs
- WmlMobileTextWriter.cs
- FactoryGenerator.cs
- EntityDataSourceSelectingEventArgs.cs
- RelatedImageListAttribute.cs
- XpsFixedDocumentReaderWriter.cs
- HttpSessionStateBase.cs
- ToggleButton.cs
- DeflateStream.cs
- EmptyEnumerator.cs
- JapaneseLunisolarCalendar.cs
- RtType.cs
- CodeConstructor.cs
- HttpAsyncResult.cs
- XPathAxisIterator.cs
- DataColumn.cs
- CodeValidator.cs
- AttributeQuery.cs
- StateManager.cs
- CuspData.cs
- AdCreatedEventArgs.cs
- RouteParametersHelper.cs
- WeakRefEnumerator.cs
- DataGridViewCellStyleConverter.cs
- WorkflowExecutor.cs
- HttpStreamMessageEncoderFactory.cs
- UrlRoutingHandler.cs
- ResourceExpressionEditor.cs
- CellParagraph.cs
- FormsAuthenticationUser.cs
- sapiproxy.cs
- OleDbConnectionFactory.cs
- CollectionContainer.cs
- PipeStream.cs
- ResourcesBuildProvider.cs
- ThicknessAnimation.cs
- DynamicQueryableWrapper.cs
- dataprotectionpermission.cs
- DbDataRecord.cs
- ISessionStateStore.cs
- OleDbDataAdapter.cs
- SrgsDocumentParser.cs
- HtmlInputHidden.cs
- Publisher.cs
- WebServiceMethodData.cs
- AspNetSynchronizationContext.cs
- FileDialog_Vista.cs
- Mouse.cs
- SpeakCompletedEventArgs.cs
- _ListenerRequestStream.cs
- ThemeableAttribute.cs
- WindowsContainer.cs
- EnumBuilder.cs
- ObjectResult.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- ASCIIEncoding.cs
- AssociationEndMember.cs
- ZoneMembershipCondition.cs
- WinOEToolBoxItem.cs
- ProgressBarRenderer.cs