C#におけるequalsと==の違いと使い方

989 ワード


Equals:
次の文では、x、y、zはnullのオブジェクト参照ではありません.*浮動小数点型の場合を除き、x.Equals(x)はtrueを返します.*x.Equals(y)はy.Equals(x)と同じ値を返します.*xとyの両方がNaNの場合、x.Equals(y)はtrueを返します.*x.Equals(z)がtrueを返す場合にのみ、(x.Equals(y)&y.Equals(z))がtrueを返します.*xとyが参照するオブジェクトを変更しない限り、x.Equals(y)の呼び出しは同じ値を返します.*x.Equals(null)はfalseを返します.
 
==:
あらかじめ定義された値タイプの場合、オペランドの値が等しい場合、等しい演算子(==)はtrueを返し、そうでない場合falseを返します.string以外の参照タイプでは、2つのオペランドが同じオブジェクトを参照している場合、==trueが返されます.stringタイプの場合、==文字列の値を比較します.
 
Equalsと==の違い
「==」:操作は、2つの変数の値が等しいかどうか、参照型変数は、2つの変数がスタックに格納されているアドレスが同じかどうか、すなわちスタックの内容が同じかどうかを示します.
"equals" :                      ,          。 
               , C#   ,   string          (  equals

 
 
以下にまとめる.
1、値タイプに対して、==とequalsは等価であり、いずれも比較記憶情報の内容である.2、参照タイプについて、==はスタック内の参照タイプのアドレスを比較し、equalsメソッドは管理スタック内の参照タイプの記憶情報の内容を比較する.
 
 
参考資料:C#のequalsと==の違いはどれらがありますhttp://www.studyofnet.com/news/219.html