Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Misc / CompatibleIComparer.cs / 1305376 / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- MdiWindowListItemConverter.cs
- RepeaterCommandEventArgs.cs
- FormsAuthenticationEventArgs.cs
- BuildProvidersCompiler.cs
- ArgumentNullException.cs
- PropertyGrid.cs
- FamilyMap.cs
- ManagementPath.cs
- StringToken.cs
- StringSorter.cs
- BoolExpr.cs
- MetadataCache.cs
- Utils.cs
- ForceCopyBuildProvider.cs
- PerformanceCounterLib.cs
- DataObjectMethodAttribute.cs
- LinearGradientBrush.cs
- OdbcFactory.cs
- ClientTargetCollection.cs
- ValuePattern.cs
- OracleEncoding.cs
- ProviderConnectionPoint.cs
- EncodingNLS.cs
- PermissionRequestEvidence.cs
- StringReader.cs
- RequiredAttributeAttribute.cs
- ImageListUtils.cs
- RegistryConfigurationProvider.cs
- NumericExpr.cs
- SafeNativeMethods.cs
- DefaultHttpHandler.cs
- MultiplexingFormatMapping.cs
- DateTimeFormat.cs
- SizeAnimationUsingKeyFrames.cs
- EntityDataSourceMemberPath.cs
- SqlRewriteScalarSubqueries.cs
- GeometryConverter.cs
- ComponentDispatcher.cs
- ScriptingWebServicesSectionGroup.cs
- DefaultClaimSet.cs
- TraceContext.cs
- FormView.cs
- _ServiceNameStore.cs
- PageCodeDomTreeGenerator.cs
- DataGridParentRows.cs
- TypeLoadException.cs
- LayoutEditorPart.cs
- Transform3DGroup.cs
- WebPartsSection.cs
- SettingsBindableAttribute.cs
- SqlDataSourceSelectingEventArgs.cs
- Journal.cs
- WebPartManagerDesigner.cs
- DelegateInArgument.cs
- WebConfigurationHost.cs
- Automation.cs
- DesignerCategoryAttribute.cs
- WorkflowRuntimeService.cs
- FusionWrap.cs
- UTF32Encoding.cs
- Funcletizer.cs
- HtmlWindow.cs
- LoginUtil.cs
- Barrier.cs
- HttpFileCollection.cs
- TextureBrush.cs
- ParagraphVisual.cs
- DiscreteKeyFrames.cs
- CircleEase.cs
- ImageKeyConverter.cs
- BitFlagsGenerator.cs
- OleDbParameterCollection.cs
- SchemaCollectionPreprocessor.cs
- HostExecutionContextManager.cs
- MimeBasePart.cs
- PrinterUnitConvert.cs
- NestPullup.cs
- CompiledQuery.cs
- TypeSystemProvider.cs
- LinqDataSourceInsertEventArgs.cs
- PostBackOptions.cs
- ServerValidateEventArgs.cs
- ReadOnlyDictionary.cs
- OdbcRowUpdatingEvent.cs
- SqlAliaser.cs
- FlowDocumentPage.cs
- SqlDataSourceDesigner.cs
- FilterQueryOptionExpression.cs
- XPathNavigatorReader.cs
- OledbConnectionStringbuilder.cs
- OdbcPermission.cs
- XmlUnspecifiedAttribute.cs
- DataGridParentRows.cs
- ClientConfigurationHost.cs
- ConfigXmlText.cs
- ResourceBinder.cs
- BridgeDataReader.cs
- DataGridCommandEventArgs.cs
- WeakEventManager.cs
- KeyValuePair.cs