C# 等号和Equals的区别

来源:互联网 发布:文件同步备份软件 编辑:程序博客网 时间:2024/05/29 15:36

重写Equals方法

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace _10等号和Equals的区别{    class Program    {        static void Main(string[] args)        {            //对于string类型而言,不管是等号还是Equals比较的都是值本身。            //Equals默认比较的是地址,但是我们在自己定义的类中如果用到Equals,都会将Equals进行重写,使之按照我们自己的需求进行比较            Person p1 = new Person() { Name = "刘德华", Age = 18 };            Person p2 = new Person() { Name = "刘德华", Age = 18 };            //if (p1.Equals(p2))            //{            //    Console.WriteLine("相等");            //}            //else            //{            //    Console.WriteLine("不相等");            //}            Console.WriteLine(p1.ToString());//这个对象所在的类的命名空间            Console.WriteLine(p2.ToString());            //StringBuilder sb = new StringBuilder();            //sb.Append("123");            //sb.Append("张三");            //Console.WriteLine(sb.ToString());            Console.ReadKey();        }    }    class Person    {        public string Name { get; set; }        public int Age { get; set; }        //类的比较,一般要重写Equals方法        public override bool Equals(object obj)        {            Person person = obj as Person;            if (this.Name == person.Name && this.Age == person.Age)            {                return true;            }            else            {                return false;            }        }        public override int GetHashCode()        {            return base.GetHashCode();        }        public override string ToString()        {            return "哈哈哈,我是被重写的ToString()";        }          }}


阅读全文
0 0
原创粉丝点击