public static void Main()
var result = c.GetAnotherObject(new BImpl<string, int>());
Console.WriteLine(result);
public class BImpl<T, V> : A<T, V>.B
public abstract class A<T, V>
public abstract int GetObject(T t, V v);
public abstract int GetAnotherObject(B b);
public abstract int BM();
public class C : A<string, int>
public override int GetObject(string abc, int def)
public override int GetAnotherObject(B b)