Is it possible to restrict a type parameter to concrete implementations of an abstract class, if those implementations don\'t have default constructors?
public class ZooPen where T : Animal
{
public ZooPen()
{
if (typeof(T).IsAbstract)
throw new ArgumentException(typeof(T).Name + " must be non abstract class");
}
}