A record stores data with a compact declaration.

record A record is a type designed for data values.

Record Basics

level
RecordBasics.cs
Replay: real traced execution (multi-file project)
using System;

record Badge(string Name, int Level)
{
    public override string ToString()
    {
        return Name + ":" + Level;
    }
}

class Program
{
    static void Main()
    {
        int level = 2;
        Badge badge = new Badge("helper", level);
        string summary = badge.Name + ":" + badge.Level;

        Console.WriteLine($"level={level}");
        Console.WriteLine($"summary={summary}");
    }
}
using System;

record Badge(string Name, int Level)
{
    public override string ToString()
    {
        return Name + ":" + Level;
    }
}

class Program
{
    static void Main()
    {
        int level = 1;
        Badge badge = new Badge("helper", level);
        string summary = badge.Name + ":" + badge.Level;

        Console.WriteLine($"level={level}");
        Console.WriteLine($"summary={summary}");
    }
}
using System;

record Badge(string Name, int Level)
{
    public override string ToString()
    {
        return Name + ":" + Level;
    }
}

class Program
{
    static void Main()
    {
        int level = 4;
        Badge badge = new Badge("helper", level);
        string summary = badge.Name + ":" + badge.Level;

        Console.WriteLine($"level={level}");
        Console.WriteLine($"summary={summary}");
    }
}
  1. level ← 2, badge ← helper:2, summary ← helper:2

    12{13    static void Main()14    {15        int level→ 2 = 2; //@level=1, 416        Badge badge→ helper:2 = new Badge("helper", level);17        string summary→ helper:2 = badge.Namehelper + ":" + badge.Level2;1819        Console.WriteLine($"level={level2}");20        Console.WriteLine($"summary={summaryhelper:2}");21    }
    outputlevel=2
    summary=helper:2
  1. level ← 1, badge ← helper:1, summary ← helper:1

    12{13    static void Main()14    {15        int level→ 1 = 1;16        Badge badge→ helper:1 = new Badge("helper", level);17        string summary→ helper:1 = badge.Namehelper + ":" + badge.Level1;1819        Console.WriteLine($"level={level1}");20        Console.WriteLine($"summary={summaryhelper:1}");21    }
    outputlevel=1
    summary=helper:1
  1. level ← 4, badge ← helper:4, summary ← helper:4

    12{13    static void Main()14    {15        int level→ 4 = 4;16        Badge badge→ helper:4 = new Badge("helper", level);17        string summary→ helper:4 = badge.Namehelper + ":" + badge.Level4;1819        Console.WriteLine($"level={level4}");20        Console.WriteLine($"summary={summaryhelper:4}");21    }
    outputlevel=4
    summary=helper:4