using System.Collections.Generic;
using System.Collections.ObjectModel;
private static T Invoke<T>(Func<T> primary, Func<T> alternative)
static DateTime? Nullable() { return default; }
static DateTime Struct() { return default; }
static Type GetType<T>(T obj)
public static void Main(string[] args)
var t = Invoke(() => Nullable(), () => Struct()) ?? throw new Exception("???");
var t2 = Invoke(() => Nullable(), () => Struct());