To θέμα που συζητάτε δεν έχει να κάνει με inheritance αλλά με variance σε generics.
Είναι documented στο MSDN και μπορείτε να δείτε εδώ τι λέει η MS για το θέμα: http://msdn2.microsoft.com/en-us/library/ms228359.aspx
Είναι πάντως ένας από τους βασικούς λόγους για τους οποίους δεν μπορείς προς το παρόν να κάνεις εκτεταμένη χρήση των generics. Όχι ότι δεν γίνεται τελικά. Απλά καταντάει πολύ πιο περίπλοκο από όσο χρειάζεται. Ελπίζω στο .Net 3 να έχει ξεπεραστεί κι αυτό.
Αυτό που προτέινει η mns παίζει σε επίπεδο hello wolrd και σε αντίστοιχες καταστάσεις αλλά τελικά όταν χρησιμοποιείες generics έχεις συνήθως κατί πολύ πιο περίπρλοκο στο μυαλό σου....
Το bottom line είναι ότι δεν υποστηρίζεται variance στα generics στο .Net framework 2.0. Οπότε ό,τι και να κάνεις σε αυτή την κατεύθυνση θα είναι κάποιου είδους workaround και θα εισάγει στο πρόβλημα που πας να λύσεις side-effects και overheads τόσο σε επίπεδο performance όσο και σε επίπεδο mainainance.
rousso