C# 7.2: Ref readonly

CSharp · Console

/Program.cs

using System;

public static class Program
{
	public static void Main()
	{
		var obj = new Foo();
		ref var alias = ref obj.CreationTime;
		alias = DateTime.Now; // OK
		ref readonly var alias2 = ref obj.GetCreationTime();
		alias2 = DateTime.Now; // 編譯錯誤!
	}
}

public class Foo
{
	public DateTime CreationTime = DateTime.Now;
	public ref readonly DateTime GetCreationTime() => ref CreationTime;
}
;