Possible Duplicate:
Why isn't there generic variance for classes in C# 4.0?
Example:
interface foo<out T> where T : BaseThing { }
compiles
class foo<out T> where T : BaseThing { }
does not.
Is this just unsupported, or is there some reason why it can never work or doesn't make logical sense?
Edit: Here's what I Wanted to do in case someone was wondering...
class BaseThing { }
class DerivedThing : BaseThing { }
class foo<out T> where T : BaseThing { }
class bar : foo<DerivedThing> { }
private void test()
{
foo<BaseThing> fooInstance = new bar();
}