object.ReferenceEquals 对象的比较(判断两个对象是否相等)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Compare { class Program { static void Main(string[] args) { // Person p1 = new Person(); // p1.Name = "小强"; // p1.Age = 18; // Person p2 = new Person(); // p2.Name = "小强"; // p2.Age = 18; // //Equals 不准确 //// if (p1==p2) // if(p1.Equals(p2)) // { // Console.WriteLine("同一个对象"); // } // else // { // Console.WriteLine("不是同一个对象"); // } string s1 = "123"; string s2 = "123";//new string(new char[]{'1','2','3'}); //if (s1==s2) //if(s1.Equals(s2))
//只要看是否占同一内存
if (object.ReferenceEquals(s1, s2)) { Console.WriteLine("同一个对象"); } else { Console.WriteLine("不是同一个对象"); } Console.ReadKey(); } } class Person { public string Name { get; set; } public int Age { get; set; } public override bool Equals(object obj) { Person pp = (Person)obj; if (this.Name == pp.Name && this.Age == pp.Age) { return true; } return false; } } }