Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Misc / CompatibleIComparer.cs / 1 / CompatibleIComparer.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* * This class is used to create hashcodes that are Everett Compatible. * * Copyright (c) 2004 Microsoft Corporation */ namespace System.Collections.Specialized { using Microsoft.Win32; using System.Collections; using System.Runtime.Serialization; using System.Globalization; internal class BackCompatibleStringComparer : IEqualityComparer { static internal IEqualityComparer Default = new BackCompatibleStringComparer(); internal BackCompatibleStringComparer() { } //This comes from VS# 434837 and is specifically written to get backcompat public static int GetHashCode(string obj) { unsafe { fixed (char* src = obj) { int hash = 5381; int c; char* szStr = src; while ((c = *szStr) != 0) { hash = ((hash << 5) + hash) ^ c; ++szStr; } return hash; } } } bool IEqualityComparer.Equals(Object a, Object b) { return Object.Equals(a, b); } public virtual int GetHashCode(Object o) { String obj = o as string; if (obj == null) { return o.GetHashCode(); } return BackCompatibleStringComparer.GetHashCode(obj); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ExpressionCopier.cs
- ReferencedCollectionType.cs
- _NegoState.cs
- StickyNote.cs
- RootBuilder.cs
- ButtonFlatAdapter.cs
- StatusBarPanelClickEvent.cs
- Int32.cs
- CodeParameterDeclarationExpression.cs
- SR.cs
- QilReference.cs
- DefaultTraceListener.cs
- Rotation3DAnimationBase.cs
- DataStreamFromComStream.cs
- XmlTextAttribute.cs
- _KerberosClient.cs
- PrefixHandle.cs
- HostingEnvironmentException.cs
- SrgsSubset.cs
- Int32EqualityComparer.cs
- Transform3DGroup.cs
- XmlSerializableReader.cs
- DigestTraceRecordHelper.cs
- Model3DGroup.cs
- UrlEncodedParameterWriter.cs
- SqlDataSourceCommandEventArgs.cs
- CancelEventArgs.cs
- XXXOnTypeBuilderInstantiation.cs
- MessageDirection.cs
- ElementMarkupObject.cs
- sqlpipe.cs
- OdbcPermission.cs
- SimpleTextLine.cs
- FigureHelper.cs
- PowerModeChangedEventArgs.cs
- Timer.cs
- StaticFileHandler.cs
- HMACRIPEMD160.cs
- GACMembershipCondition.cs
- ConnectionsZone.cs
- DropAnimation.xaml.cs
- ListViewGroupConverter.cs
- _ServiceNameStore.cs
- ClientFormsAuthenticationMembershipProvider.cs
- ContextMenuStrip.cs
- WebPartManagerInternals.cs
- ExtentKey.cs
- MethodExpr.cs
- TemplateControlBuildProvider.cs
- PointKeyFrameCollection.cs
- ContextBase.cs
- ECDiffieHellmanCngPublicKey.cs
- SoapParser.cs
- TransactionFlowBindingElementImporter.cs
- Span.cs
- ClusterRegistryConfigurationProvider.cs
- MessagePropertyVariants.cs
- httpapplicationstate.cs
- RoleService.cs
- CustomErrorsSection.cs
- MessagePartProtectionMode.cs
- CryptoProvider.cs
- StickyNoteAnnotations.cs
- WhitespaceSignificantCollectionAttribute.cs
- TypefaceMap.cs
- HttpListenerPrefixCollection.cs
- Int16.cs
- ItemList.cs
- _CommandStream.cs
- FontStyle.cs
- XmlQueryType.cs
- PngBitmapDecoder.cs
- BindingOperations.cs
- DiscoveryDocumentSerializer.cs
- CachedRequestParams.cs
- C14NUtil.cs
- ReadOnlyHierarchicalDataSourceView.cs
- TextShapeableCharacters.cs
- RenderingBiasValidation.cs
- BlockCollection.cs
- AnonymousIdentificationModule.cs
- TraceEventCache.cs
- ModelFactory.cs
- XmlNodeChangedEventManager.cs
- MetadataArtifactLoaderFile.cs
- WebPartDisplayModeCancelEventArgs.cs
- WebServiceTypeData.cs
- DataBinding.cs
- AppDomainProtocolHandler.cs
- Vector3DAnimationBase.cs
- TextParaClient.cs
- WebHttpBinding.cs
- TextElementCollectionHelper.cs
- _HeaderInfoTable.cs
- Semaphore.cs
- EmulateRecognizeCompletedEventArgs.cs
- WindowsHyperlink.cs
- XmlStringTable.cs
- PropertyManager.cs
- SqlRecordBuffer.cs