public abstract class BaseClass<T>
public abstract void TrySomething(out T? output);
public class Implementation : BaseClass<int>
public override void TrySomething(out int output)
Console.WriteLine("Hello World");
public static void Main()
BaseClass<int> x = new Implementation();