I have 2 generic classes, a BaseComponent
Class, and a BaseManager
class.
They\'re both abstract and are intended to be made concrete.
It sounds like you might want to have two generic type parameters:
public abstract class BaseManager
where TComponent : BaseComponent
where TManager : BaseManager
public abstract class BaseComponent
where TComponent : BaseComponent
where TManager : BaseManager
Yes, it's smelly - but that's the sort of thing I've done in Protocol Buffers.
So then you'd have:
public class PhysicsManager : BaseManager
public class PhysicsComponent : BaseComponent