public partial interface IUnionSample<T>
public T Key { get; set; }
public partial class FooClass : IUnionSample<string>
public int XYZ { get; set; }
public string Key { get; set; }
public partial class BarClass : IUnionSample<string>
public string? OPQ { get; set; }
public string Key { get; set; }
public static void Main()
Console.WriteLine(typeof(IUnionSample).IsGenericType);