Records and Modern Types
Value Equality
Records compare their stored values, not just object identity.
Value Equality
ValueEquality.cs
using System;
record Point(int X, int Y)
{
public override string ToString()
{
return X + "," + Y;
}
}
class Program
{
static void Main()
{
int x = ;
Point first = new Point(x, 4);
Point second = new Point(x, 4);
bool equal = first == second;
Console.WriteLine($"x={x}");
Console.WriteLine($"equal={equal}");
}
}
using System;
record Point(int X, int Y)
{
public override string ToString()
{
return X + "," + Y;
}
}
class Program
{
static void Main()
{
int x = ;
Point first = new Point(x, 4);
Point second = new Point(x, 4);
bool equal = first == second;
Console.WriteLine($"x={x}");
Console.WriteLine($"equal={equal}");
}
}
using System;
record Point(int X, int Y)
{
public override string ToString()
{
return X + "," + Y;
}
}
class Program
{
static void Main()
{
int x = ;
Point first = new Point(x, 4);
Point second = new Point(x, 4);
bool equal = first == second;
Console.WriteLine($"x={x}");
Console.WriteLine($"equal={equal}");
}
}
value equality
Value equality means two objects are equal when their data is equal.