Ces deux classes partage certaines propriétés (ex: ToString()) La liste pourrait utiliser ces propriétés ne
que nous pouvons faire:
List<object> list = new List<object>();
list.Add("foo");
list.Add(5);
foreach(object o in list)
{
Console.WriteLine(o.ToString());
}
J'ai la même question.
lirons: http://msdn.microsoft.com/en-gb/library/ee207183.aspx
Voici quelque chose plus étrange:
object[] array = new string[10]; // Possible <-- /!\ not secured.
List<object> list = new List<string>(); // Impossible
Edit: Eh oui, je ne comprenais pas votre exemple, méta ^^ »
Mais, nous pouvons ne veut pas ajouter quelque chose, il suffit de lire.
ReadOnlyCollections ne sont pas contravariants aussi:/
Edit 2: Bon sang. Je viens de comprendre le problème. (Le 'out' mot-clé)
Je n'ai pas .NET 4.0: '(je vais utiliser des tableaux ^^
(Avec 4.0 -> IEnumerable permet)
(avec Unity3D)
Recherchez la covariance et la contravariance. – paqogomez