上級 › record と class で == の結果が変わる理由 › パターン1
record と class で == の結果が変わる理由
recordはプロパティの値が全て同じなら==がtrueになる値ベースの等価性を自動生成します。
1 _________ Point(int X, int Y); ^ 2 class Program { 3 static void Main(string[] args) { 4 Point a = new Point(1, 2); 5 Point b = new Point(1, 2); 6 System.Console.WriteLine(a == b); 7 } 8 }
出力: False
空欄を埋めてビルドを通す
recordは既定で値(プロパティの中身)を比較する==を自動生成します。classは参照を比較するので、同じ値でもfalseになります。
次の問題