F
Fabio Z
Hi all, I have a classic problem: List<T> and List<X> where X is a class X :
T.
Ok, I know the problem: I cannot cast List<T> on List<X> because also if X
is a T, List<X> is not a List<T>.
What I don't know is the solution
Let's see this scenario (that obviously doesn't compile):
// --------------------------
class BaseClass
{ }
class DerivedClass : BaseClass
{ }
class BaseClassCollection : List<BaseClass>
{ }
class DerivedClassCollection : List<DerivedClass>
{ }
class Collector
{
BaseClassCollection _classes = new BaseClassCollection();
public virtual BaseClassCollection Classes
{
get { return _classes; }
}
}
class DerivedCollector : Collector
{
public override DerivedClassCollection Classes
{
get { return _classes; }
}
}
// --------------------------
This is what I would have: more specific classes that work on base classes.
What is the more similar solution?
Thanks!
T.
Ok, I know the problem: I cannot cast List<T> on List<X> because also if X
is a T, List<X> is not a List<T>.
What I don't know is the solution
Let's see this scenario (that obviously doesn't compile):
// --------------------------
class BaseClass
{ }
class DerivedClass : BaseClass
{ }
class BaseClassCollection : List<BaseClass>
{ }
class DerivedClassCollection : List<DerivedClass>
{ }
class Collector
{
BaseClassCollection _classes = new BaseClassCollection();
public virtual BaseClassCollection Classes
{
get { return _classes; }
}
}
class DerivedCollector : Collector
{
public override DerivedClassCollection Classes
{
get { return _classes; }
}
}
// --------------------------
This is what I would have: more specific classes that work on base classes.
What is the more similar solution?
Thanks!