public T Value { get; set; }
public Id(T value) => Value = value;
public T1 MatchWith<T1>(Func<T, T1> callback) => callback(Value);
public void MatchWith(Action<T> callback) => callback(Value);
public static void Main()
new Id<int>(3). MatchWith(Console.WriteLine);
Console.WriteLine( new Id<int>(3).Value) ;
Console.WriteLine("Hello World");