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));
     
            }
        }
    }

  • 相关阅读:
    满血复活
    绝望,绝望、希望
    认真生活的态度
    星期一
    户外穿越
    认真准备
    早点休息
    LeetCode OJ
    LeetCode OJ
    LeetCode OJ
  • 原文地址:https://www.cnblogs.com/siso/p/3692491.html
Copyright © 2011-2022 走看看