C # create Object obj = novo T ()?

Eu tenho uma superclasse que podemos chamarclass A e algumas subclasses, e.class a1 : A, class a2 : A... ea6 : A. No meuclass B, Tenho um conjunto de métodos que cria e adiciona uma das subclasses a umList<A>emB.

Eu quero encurtar meu código que tenho no momento. Então, ao invés de escrever

Adda1()
{
    aList.Add( new a1() );
}

Adda2()
{
    aList.Add( new a2() );
} 

...

Adda6()
{
    aList.Add( new a6() );
}

Em vez disso, quero escrever algo semelhante a isso

Add<T>()
{
    aList.Add( new T() );  // This gives an error saying there is no class T.
}

Isso é possível?

Também é possível restringir queT tem que ser do tipoA ou uma de suas subclasses?

questionAnswers(2)

yourAnswerToTheQuestion