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
- EnglishPluralizationService.cs
- ComPlusInstanceContextInitializer.cs
- HttpCachePolicyBase.cs
- Buffer.cs
- StoragePropertyMapping.cs
- OdbcDataReader.cs
- DbgCompiler.cs
- ListenDesigner.cs
- ConnectionInterfaceCollection.cs
- RegexMatchCollection.cs
- PeerObject.cs
- clipboard.cs
- DesignerActionList.cs
- serverconfig.cs
- EditorAttributeInfo.cs
- WebPartExportVerb.cs
- CodeObjectCreateExpression.cs
- SchemaNames.cs
- WorkflowRuntimeSection.cs
- StyleSheet.cs
- PlanCompilerUtil.cs
- ProjectionCamera.cs
- MSAANativeProvider.cs
- NavigationWindowAutomationPeer.cs
- XmlEventCache.cs
- ElementMarkupObject.cs
- MessageSecurityProtocolFactory.cs
- ProvideValueServiceProvider.cs
- CodeCatchClauseCollection.cs
- ThreadAttributes.cs
- ToolStripDropDownButton.cs
- DbDataReader.cs
- MaterialCollection.cs
- PropertyTabChangedEvent.cs
- HTMLTextWriter.cs
- XmlDocumentViewSchema.cs
- ModelUIElement3D.cs
- WebEvents.cs
- BlurBitmapEffect.cs
- IApplicationTrustManager.cs
- PropertyItem.cs
- EqualityComparer.cs
- HttpContextWrapper.cs
- HttpApplicationStateWrapper.cs
- AuditLogLocation.cs
- MessageEnumerator.cs
- Transform3DGroup.cs
- HtmlLiteralTextAdapter.cs
- Compiler.cs
- ComplusTypeValidator.cs
- PocoPropertyAccessorStrategy.cs
- TransformConverter.cs
- EditorPartCollection.cs
- NonVisualControlAttribute.cs
- ExpressionNormalizer.cs
- TraceContextRecord.cs
- Misc.cs
- CompiledAction.cs
- PromptStyle.cs
- dbenumerator.cs
- CompilerGeneratedAttribute.cs
- ScriptRegistrationManager.cs
- DrawingAttributes.cs
- TypeGeneratedEventArgs.cs
- SiteMapDataSource.cs
- ExtendedProtectionPolicyElement.cs
- Transform3DGroup.cs
- HwndTarget.cs
- ChildDocumentBlock.cs
- ImageListStreamer.cs
- FixedSOMPageConstructor.cs
- SqlBuffer.cs
- ContainerControl.cs
- LoginView.cs
- SqlClientFactory.cs
- DesignerOptionService.cs
- HierarchicalDataBoundControl.cs
- GroupLabel.cs
- Pen.cs
- util.cs
- exports.cs
- validation.cs
- Vector3DCollectionValueSerializer.cs
- KeyEventArgs.cs
- CharacterMetrics.cs
- KeyBinding.cs
- OleDbException.cs
- InkCollectionBehavior.cs
- GridViewColumnHeaderAutomationPeer.cs
- WeakReferenceEnumerator.cs
- DBSqlParser.cs
- PackageStore.cs
- ArgumentException.cs
- InstanceHandleReference.cs
- loginstatus.cs
- SrgsElement.cs
- DataTableMapping.cs
- SectionInput.cs
- ImpersonateTokenRef.cs
- AutomationPatternInfo.cs