Je connais quelques différences, p>
Y a-t-il une autre différence que j'ai manquée ... Si oui, que sont-ils? p>
4 Réponses :
Veuillez lire: La pile est un détail de mise en œuvre , et ne répétez jamais plus jamais le canard que l'allocation de pile est ce qui différencie les types de valeur des types de référence. Notre. Le CLR peut choisir d'allouer une variable partout où elle veut. P>
La différence la plus importante est dans la sémantique de l'affectation. Lorsque vous attribuez une valeur de valeur à une variable (ou transmettez-la à une méthode sous forme d'argument), toutes les données sont copiées. Lorsque vous attribuez un type de référence, seule une référence est copiée - les deux références pointent sur la même instance d'objet en mémoire. P>
Peu de mots durement, mais hey c'est le meilleur moyen que j'ai appris, comme si tu avais agacé Gandalf et l'attendre à vous expliquer à vous avec une contrariété dans sa voix, ça a tendance à coller = D
Comme mentionné par Aaronaught et Eric Blog Post: p>
N'oubliez pas de la règle, les types de référence vont toujours sur le tas, tandis que les types de valeur vont toujours où ils ont été déclarés? Si un type de valeur est déclaré en dehors d'une méthode, mais à l'intérieur d'un type de référence, il sera placé dans le type de référence sur le tas. P>
Je pense que les valeurs sont assignées implicitement de la mémoire mais non des types de référence, ils doivent être attribués de la mémoire explicitement p>
Voici quelques différences supplémentaires: P>
Demandé plusieurs fois déjà sur alors ....
@Whate, recherche rapide, non, cette question n'a pas été posée ni répondu directement.
Je n'ai pas le temps de répondre pleinement au moment - mais j'aimerais simplement souligner que "les types de valeurs sont stockés sur la pile" est une surestimation. Voir POBOX.COM/~SKEET/CSHARP/MEMORY.HTML . Pour plus d'informations sur les types de référence VS Types de valeur, voir POBOX.COM/~SKEET/CSHARP/FERFERENCES. HTML
@strager - Le phrasé est légèrement différent mais le sujet est couvert de nombreux endroits. Par exemple Stackoverflow.com/Questtions/1130468/...
Les types de valeur peuvent être stockés sur le tas lorsque la boîte msdn.microsoft.com/fr- US / Bibliothèque / YZ2BE5WK.ASPX