public static void Main()
Console.WriteLine("Hello World");
var ns1 = new NormalStruct() { X = 42 };
Console.WriteLine("Normal structs are reference equal: " + ReferenceEquals(ns1, ns2));
var rs1 = new ReadonlyStruct() { X = 42 };
Console.WriteLine("Readonly structs are reference equal: " + ReferenceEquals(rs1, rs2));
var rsi1 = IAmAnInterface.RSInstance;
Console.WriteLine("Readonly structs accessed through an interface are reference equal: " + ReferenceEquals(rsi1, rsi2));
public struct NormalStruct
public int X { get; set; }
public readonly struct ReadonlyStruct : IReadonlyStruct
public int X { get; init; }
public interface IAmAnInterface
static readonly IReadonlyStruct RSInstance = new ReadonlyStruct() { X = 50 };
public interface IReadonlyStruct