.NET Fiddle

CSharp · Console

/Program.cs

using System;

public abstract class Singleton<T> where T : Singleton<T>, new()
{
    private static T _Instance = new T();
    public static T Instance => _Instance;
}

public class Player : Singleton<Player>
{
    public string name;
}

public class Program
{
	public static void Main()
	{
		Player.Instance.name = "Eli Vance";
		Console.WriteLine("Player name: " + Player.Instance.name);
	}
}
;