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
- ValidatingReaderNodeData.cs
- Int32CollectionConverter.cs
- QueryTreeBuilder.cs
- DesignerAutoFormatStyle.cs
- NonParentingControl.cs
- BoolExpression.cs
- WebServiceResponse.cs
- cookiecollection.cs
- QueuePathDialog.cs
- DataColumnMappingCollection.cs
- SuppressMessageAttribute.cs
- MD5CryptoServiceProvider.cs
- UserValidatedEventArgs.cs
- _HTTPDateParse.cs
- WebServiceParameterData.cs
- RegexGroupCollection.cs
- SQLByte.cs
- MultipleViewPattern.cs
- Line.cs
- WorkerRequest.cs
- NullableDoubleAverageAggregationOperator.cs
- NamedServiceModelExtensionCollectionElement.cs
- WebPartTransformerCollection.cs
- TableAdapterManagerGenerator.cs
- Rotation3DKeyFrameCollection.cs
- AttachedProperty.cs
- PrimitiveCodeDomSerializer.cs
- RuntimeIdentifierPropertyAttribute.cs
- ImageButton.cs
- ListViewContainer.cs
- MarkupExtensionParser.cs
- InfoCardXmlSerializer.cs
- SmiTypedGetterSetter.cs
- CachingHintValidation.cs
- GeneratedContractType.cs
- PrintDialog.cs
- MimeTypeMapper.cs
- BitmapPalette.cs
- _SslStream.cs
- ColorTransform.cs
- Point.cs
- HtmlLink.cs
- WebPartDisplayMode.cs
- MediaElement.cs
- DatatypeImplementation.cs
- RangeBaseAutomationPeer.cs
- CompleteWizardStep.cs
- TextServicesCompartmentEventSink.cs
- MULTI_QI.cs
- CharAnimationUsingKeyFrames.cs
- LineGeometry.cs
- WasHttpHandlersInstallComponent.cs
- Parallel.cs
- InkCanvasAutomationPeer.cs
- Thread.cs
- GrabHandleGlyph.cs
- BitmapDownload.cs
- RuntimeArgumentHandle.cs
- ToolStripProgressBar.cs
- ValueQuery.cs
- Encoding.cs
- TimeSpan.cs
- TextComposition.cs
- HttpListenerPrefixCollection.cs
- NetworkInformationException.cs
- TemplateBindingExpression.cs
- XmlCodeExporter.cs
- sqlser.cs
- HwndSourceParameters.cs
- FileDialog_Vista_Interop.cs
- CurrentChangingEventArgs.cs
- SetIterators.cs
- OleDbConnectionInternal.cs
- FormattedTextSymbols.cs
- StringDictionary.cs
- Rect.cs
- MD5.cs
- UserControlBuildProvider.cs
- EventManager.cs
- RequestBringIntoViewEventArgs.cs
- FirstMatchCodeGroup.cs
- GZipDecoder.cs
- UnionCodeGroup.cs
- ThumbAutomationPeer.cs
- CalendarAutoFormatDialog.cs
- CustomSignedXml.cs
- CheckBoxRenderer.cs
- Margins.cs
- documentsequencetextpointer.cs
- Compilation.cs
- HierarchicalDataSourceControl.cs
- NamespaceList.cs
- PenThreadWorker.cs
- StoreContentChangedEventArgs.cs
- XmlChildNodes.cs
- XmlSchemaAnnotated.cs
- ProtocolsConfigurationHandler.cs
- HtmlContainerControl.cs
- SmiConnection.cs
- ConstructorBuilder.cs