zoukankan      html  css  js  c++  java
  • C# GetHashCode与Equals在HashTable表查找时的关系

    using System;
    using System.Collections.Generic;
    using System.Text;
    using Microsoft.Win32;
    using System.Threading;
    using System.IO;
    using System.Security.Cryptography;
    using Common;
     
     
    namespace ConsoleApplication2
    {
        public class Test
        {
            private string _id;
     
            public string Id
            {
                get { return _id; }
                set { _id = value; }
            }
     
            public Test(string id)
            {
                _id = id;
            }
     
            public override int GetHashCode()
            {
                Console.WriteLine("GetHashCode()");         
                return Id.Length;
            }
     
            public override bool Equals(object obj)
            {
                Console.WriteLine("Equals()");
                return Id == (obj as Test).Id;
            }
        }
     
        class Program
        {
            /// <summary>
            /// 如果GetHashCode相等则不用Equals了,否则需要Equals
            /// </summary>
            /// <param name="args"></param>
            static void Main(string[] args)
            {
                Dictionary<Test, string> dc = new Dictionary<Test, string>();
     
                Test t1 = new Test("a");
                Test t2 = new Test("b");
                Test t3 = new Test("cc"); 
     
                dc.Add(t1, "");
                Console.WriteLine("----------------");
                Console.WriteLine(dc.ContainsKey(t1));
                Console.WriteLine("----------------");
                Console.WriteLine(dc.ContainsKey(t2));
                Console.WriteLine("----------------");
                Console.WriteLine(dc.ContainsKey(t3));
     
            }
        }
    }

  • 相关阅读:
    QuickFlash
    第五课:类的封装性 M
    第六课:构造方法、匿名对象 M
    第四课:面向对象(基础) M
    第八课:引用传递 M
    第七课:String类 M
    第二课:数组 M
    第三课:方法 M
    ASP .Net的应用程序域(The Application Domain)
    js 解数独程序
  • 原文地址:https://www.cnblogs.com/siso/p/3692491.html
Copyright © 2011-2022 走看看