Disons que tu peux considérer que tout est objet, bien que techniquement ce n'est pas le cas. Les types primitifs sont automatiquement convertis dans leurs équivalent objet (autoboxing) et inversement, évitant ainsi au programmeur de faire la différence.
Par exemple :
ArrayList list = new ArrayList();
for(int i = 0; i < 10; i++) list.Add(i); //pas besoin de faire new Int32(i)
int total = 0;
foreach(int i in list) total += i;
Console.WriteLine(i);
A noter que ce comportement est désormais présent dans Java 1.5
Dans la pratique C# distingue également les structures qui ne peuvent pas posséder de méthodes virtuelles (donc pas vraiment objet) mais peut implémenter des interfaces par exemple. La principale différence vient du fait que les structures sont allouées sur la pile et non sur le tas, et sont passées par valeur et non par référence.
[^] # Re: Question
Posté par TImaniac (site web personnel) . En réponse au journal Un petit site sur Mono en français. Évalué à 4.
Par exemple :
ArrayList list = new ArrayList();
for(int i = 0; i < 10; i++) list.Add(i); //pas besoin de faire new Int32(i)
int total = 0;
foreach(int i in list) total += i;
Console.WriteLine(i);
A noter que ce comportement est désormais présent dans Java 1.5
Dans la pratique C# distingue également les structures qui ne peuvent pas posséder de méthodes virtuelles (donc pas vraiment objet) mais peut implémenter des interfaces par exemple. La principale différence vient du fait que les structures sont allouées sur la pile et non sur le tas, et sont passées par valeur et non par référence.