I'm using something like these two classes:
class Binder1
{
public void Add(Binder2 toAdd)
{
toAdd.Add(this);
this.Add(toAdd);
}
}
class Binder2
{
void Add(Binder1 toAdd)
{
toAdd.Add(this);
this.Add(toAdd);
}
}
Instead of using a common parent class as the Add parameter I'd like to make use of generics, because it will be more convenient in the rest of the class functionality.
class Binder<T>
{
public void Add(T toAdd)
{
toAdd.Add(this);
this.Add(toAdd);
}
}
class Binder1 : Binder<Binder2>
class Binder2 : Binder<Binder1>
but I don't know if that's possible. I'd very much appreciate help with design.
To me it seemed that single generic ID is not enough and that I can't go without
class Binder<T1, T2>
and of course to specify the the base to make Add() callable
where T1: Binder<T1, T2>
where T2: Binder<T2, T1>
but I'm hitting on T1 vs Binder<T1, T2> conversion problems.
I just probably make it too complicated and there is a much simpler way I don't see.
Is there?
Thanks very much for any suggestions.