Init-only properties are assigned during object creation.

Init Properties

InitProperties.cs
using System;

class Profile
{
    public string Name { get; init; } = "";
    public int Age { get; init; }

    public override string ToString()
    {
        return Name + ":" + Age;
    }
}

class Program
{
    static void Main()
    {
        int age = ;
        Profile profile = new Profile { Name = "Dana", Age = age };
        string summary = profile.Name + ":" + profile.Age;

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

class Profile
{
    public string Name { get; init; } = "";
    public int Age { get; init; }

    public override string ToString()
    {
        return Name + ":" + Age;
    }
}

class Program
{
    static void Main()
    {
        int age = ;
        Profile profile = new Profile { Name = "Dana", Age = age };
        string summary = profile.Name + ":" + profile.Age;

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

class Profile
{
    public string Name { get; init; } = "";
    public int Age { get; init; }

    public override string ToString()
    {
        return Name + ":" + Age;
    }
}

class Program
{
    static void Main()
    {
        int age = ;
        Profile profile = new Profile { Name = "Dana", Age = age };
        string summary = profile.Name + ":" + profile.Age;

        Console.WriteLine($"age={age}");
        Console.WriteLine($"summary={summary}");
    }
}
init property An `init` property can be set in an object initializer and then treated as fixed.