- Equals() method compares the state of an object i.e. it compares the contents of the two objects.
- == compares the instance of the object i.e. it comparing the identifier(references).
Example :
string s1 = "test";
string s2 = "test";
string s3 = new string(new char[] { 't', 'e', 's', 't' });
object s4 = s3;
Console.WriteLine("{0} {1} {2}", object.ReferenceEquals(s1, s2), s1 == s2, s1.Equals(s2));
Console.WriteLine("{0} {1} {2}", object.ReferenceEquals(s1, s3), s1 == s3, s1.Equals(s3));
Console.WriteLine("{0} {1} {2}", object.ReferenceEquals(s1, s4), s1 == s4, s1.Equals(s4));
Output :
True True True
False True True
False False True
string s2 = "test";
string s3 = new string(new char[] { 't', 'e', 's', 't' });
object s4 = s3;
Console.WriteLine("{0} {1} {2}", object.ReferenceEquals(s1, s2), s1 == s2, s1.Equals(s2));
Console.WriteLine("{0} {1} {2}", object.ReferenceEquals(s1, s3), s1 == s3, s1.Equals(s3));
Console.WriteLine("{0} {1} {2}", object.ReferenceEquals(s1, s4), s1 == s4, s1.Equals(s4));
Output :
True True True
False True True
False False True