??????.Net????У?????????????????????System.Object???????????4????????ж???????
??????static Equals()
??????virtual Equals()
??????static ReferenceEquals()
????virtual GetHashCode()
???????????Microsoft???????9???????????????????????
??????IEquatable<T>
??????IComparable
??????IComparable<T>
??????IComparer
??????IComparer<T>
??????IEqualityComparer
??????IEqualityComparer<T>
??????IStructuralEquatable
??????IStructuralComparable
???????????????????Щ??????????????ò????????????????????????????????????????Щ????????
????????????????????????????Щ?????????????????????????????Щ?????????
????????????
?????????????????????????譚???????????????????У?
?????????????????
?????ж???????????
????????????????
??????OOP???????
?????????????????
???????????????.Net????У???????????洢???????????????????????????????б???????λ??????????ζ???????????????????????????????????????????????????????????λ??????????????????????????????????????????????λ?e??????????? ??????????????в????λ?????????????????
??????????????????????????????????
????1 class Program
????2 {
????3     static void Main(String[] args)
????4     {
????5         Person p1 = new Person();
????6         p1.Name = "Sweet";
????7
????8         Person p2 = new Person();
????9         p2.Name = "Sweet";
????10
????11         Console.WriteLine(p1 == p2);
????12     }
????13 }
???????????????????Person??????????????????Name??????????????????Person????????????????????????????? ?????????????????????????????????False??????ζ???????????
?????????????.Net????У?????????????????ж????????????????仰???"=="????????ж???????????????????????????λ?????????????У?????Person????????????????????????????????????????????p1??p2?????????治???λ?á?
???????????????????????????????????????????????????????????????????????Щ?????磬???Person????????????κ????????????к??????Person?????????????????????????????????????λ??????C#?в???????????????????????????????????????????????????????????????????????????д???????????????
??????????????????????
????1 class Program
????2 {
????3     static void Main(String[] args)
????4     {
????5         string s1 = "Sweet";
????6
????7         string s2 = string.Copy(s1);
????8
????9         Console.WriteLine(s1 == s2);
????10      }
????11  }
????????????????????????????????????????????У????????"=="??????ж??????????String?????????????????????s1????????????s1?????????????????????s2????????δ????????????????True??????????????String???????????????
???????"=="??????ж?????????????????? ???????????????????????????False??????????String?????"==" ??????ж??????????
??????????????????
?????????????????????????????????????????δ???????????????????????????????洢??????????????????????????????????ζ????????????
???????′?????????????????????????????"=="????????????????????
????1 class Program
????2 {
????3      static void Main(String[] args)
????4     {
????5         int num1 = 2;
????6
????7         int num2 = 2;
????8
????9         Console.WriteLine(num1 == num2);
????10     }
????11 }
???????????????У?"=="????????????num1?洢????????num2?洢??????б??????????????????????????????????????Object????????????£?
????1 int num1 = 2;
????2
????3 int num2 = 2;
????4
????5 Console.WriteLine((object)num1 == (object)num2);
????????????????????????????False????????δ?????????????????Object?????????????????????????????????Object??????????????????????????????????????????"=="???з??????????????????????????????
???????????????????????????????????????????????????????????????????????????????????????????????????????
1 Console.WriteLine((IComparable<int>)num1 == (IComparable<int>)num2);
???????????????????????????????????int???????????????ICompareable<int>??????.Net??????????????int???????????????????????????????????????????????
??????.Net????У?????????????????????????????????δ????????????False????????????????????????????????С????????????????飬?????????????????????
????"=="?????
???????C#?????????????????????????????????ж??????????Щ???????????????C#??????"=="?????????????????????????????????ж???????????????磬????????д???
??1 Console.WriteLine??var1 == var2??
??????????????????"=="????????????????????????????????????"=="???????ж????????????????C#????????????
???????????????У??????????????"=="??????????ü??ж????????????????????????????????????????????????????"=="?ж???????????????????????????????????????????????????????ж??????
?????ж???????????
????????????????????????????????????????????????????????String?????????????????
????????????????????????????????????????????????????Сд?????磺?????????????????????????????????????????????????????????????Сд???????????Sql Server??????У??????????????????????.Net?????????а??????????????????????String?????????????Equals???????????????????????
????1 string s1 = "SWEET";
????2
????3 string s2 = "sweet";
????4
????5 Console.WriteLine(s1.Equals(s2??StringComparison.OrdinalIgnoreCase));
?????????????????????????????????????????True??
???????.Net????????????????ж??????????????????????????????????IEquatable<T>???????????????????ж???????????????????????????????.Net????????????????????????????????IEqualityComparer<T>?????????????????????????ж???????????????????????????磺??????????String?????е?????б?????????????????????????????????????
????.Net????????????ICompareable<T>???????ж???????????С??????????????IComparer<T>????????????????????????????????????????Щ????