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

  • 相关阅读:
    Nancy 寄宿IIS
    原子操作
    CSRF跨站请求伪造
    CORS跨域
    C# 运算符
    Mysql 函数
    Mongodb for .Net Core 驱动的应用
    Mongodb for .Net Core 封装类库
    制作项目模板
    压缩图片
  • 原文地址:https://www.cnblogs.com/siso/p/3692491.html
Copyright © 2020-2023  润新知