Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / clr / src / BCL / System / ValueType.cs / 1 / ValueType.cs
// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
/*============================================================
**
** Class: ValueType
**
**
** Purpose: Base class for all value classes.
**
**
===========================================================*/
namespace System {
using System;
using System.Reflection;
using System.Runtime.CompilerServices;
[Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class ValueType {
public override bool Equals (Object obj) {
BCLDebug.Perf(false, "ValueType::Equals is not fast. "+this.GetType().FullName+" should override Equals(Object)");
if (null==obj) {
return false;
}
RuntimeType thisType = (RuntimeType)this.GetType();
RuntimeType thatType = (RuntimeType)obj.GetType();
if (thatType!=thisType) {
return false;
}
Object thisObj = (Object)this;
Object thisResult, thatResult;
// if there are no GC references in this object we can avoid reflection
// and do a fast memcmp
if (CanCompareBits(this))
return FastEqualsCheck(thisObj, obj);
FieldInfo[] thisFields = thisType.GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
for (int i=0; i
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SystemNetHelpers.cs
- PageBreakRecord.cs
- Application.cs
- Wizard.cs
- AttributeCollection.cs
- FocusTracker.cs
- MsmqIntegrationValidationBehavior.cs
- SuppressMergeCheckAttribute.cs
- GenericUriParser.cs
- WebPartDisplayModeCancelEventArgs.cs
- SettingsAttributeDictionary.cs
- MeshGeometry3D.cs
- ListViewEditEventArgs.cs
- ButtonBaseAdapter.cs
- DataGridViewSelectedRowCollection.cs
- ConstructorNeedsTagAttribute.cs
- ModelPerspective.cs
- DataGridViewCellMouseEventArgs.cs
- PasswordTextNavigator.cs
- DataViewManagerListItemTypeDescriptor.cs
- BackEase.cs
- DataGridViewCheckBoxCell.cs
- EntityConnectionStringBuilderItem.cs
- ActiveXHelper.cs
- FontDialog.cs
- InputLanguage.cs
- SiteIdentityPermission.cs
- ViewSimplifier.cs
- InfoCardProofToken.cs
- UpdateCommand.cs
- ObjectResult.cs
- WinInet.cs
- XmlSchemaProviderAttribute.cs
- SiteMapProvider.cs
- UIElement3D.cs
- GenericUriParser.cs
- ConfigXmlAttribute.cs
- HwndHostAutomationPeer.cs
- DispatcherHookEventArgs.cs
- HttpRequestCacheValidator.cs
- InputLanguageSource.cs
- ConditionValidator.cs
- DoubleLinkList.cs
- GridViewColumnCollectionChangedEventArgs.cs
- FilteredDataSetHelper.cs
- BinaryUtilClasses.cs
- OracleInternalConnection.cs
- InputMethod.cs
- SynchronizationContext.cs
- DoubleAnimationUsingKeyFrames.cs
- SqlMetaData.cs
- ReflectionUtil.cs
- SecurityVersion.cs
- ValidationResult.cs
- ScriptingJsonSerializationSection.cs
- TemplateField.cs
- ServiceModelDictionary.cs
- XmlArrayItemAttributes.cs
- UdpTransportSettings.cs
- DataObjectFieldAttribute.cs
- Simplifier.cs
- OverflowException.cs
- WebPartMenuStyle.cs
- DataListItemCollection.cs
- SessionStateContainer.cs
- ListBox.cs
- WindowsToolbarItemAsMenuItem.cs
- TypeLibConverter.cs
- NoResizeSelectionBorderGlyph.cs
- ContainsRowNumberChecker.cs
- AutomationElementIdentifiers.cs
- SerializerDescriptor.cs
- BlurBitmapEffect.cs
- Margins.cs
- _BufferOffsetSize.cs
- ColorDialog.cs
- SoapElementAttribute.cs
- PreviewPrintController.cs
- ImageSourceConverter.cs
- WindowsListViewItemCheckBox.cs
- DataComponentGenerator.cs
- DefaultAsyncDataDispatcher.cs
- XPathCompiler.cs
- RealProxy.cs
- Types.cs
- Thread.cs
- DoubleIndependentAnimationStorage.cs
- StyleCollectionEditor.cs
- RoleManagerModule.cs
- ToolStripItemImageRenderEventArgs.cs
- EventItfInfo.cs
- ObjectSpanRewriter.cs
- AnonymousIdentificationModule.cs
- SqlTypeSystemProvider.cs
- WindowsFont.cs
- OuterGlowBitmapEffect.cs
- _HelperAsyncResults.cs
- DBPropSet.cs
- PropertyEntry.cs
- ServiceHostingEnvironmentSection.cs